元组(tuple)
元组和列表一样但是元组无法修改,元组用小括号
一、元组类型的内置方法
元组是不可变的列表,即元组的值不可更改,因此元组一般只用于只存不取的需求。也因此元组可以被列表取代掉,所以元组相比较列表使用的很少。元组相比较列表的优点为:列表的值修改后,列表的结构将会发生改变,而元组只需要存储,因此列表在某种程度上而言需要占用更多的内存。但是目前工业上内存已经不是问题了,所以工业上元组一般不会使用。
1.用途:
- 早期永远一般用于减小内存占用,现在毫无用处,以后只要定义列表就行了。
- 现在多用于表示多个装备、多个爱好、多门课程,甚至是多个女朋友
2.定义:在()内可以有多个任意类型的值,逗号分隔元素
msg = ('python','thank','shanghai')
print(id(msg))
print(type(msg))
print(msg)
输出:
2853144129352
<class 'tuple'>
('python', 'thank', 'shanghai')
msg1 = ('python',)
print(id(msg1))
print(type(msg1))
print(msg1)
#输出:
2257491908488
<class 'tuple'>
('python',)
msg = ('python')## 这样写是普通包含的意思
print(id(msg))
print(type(msg))
print(msg)
#输出:
2257772165616
<class 'str'>
python
二、内置方法
2.1优先掌握
-
索引取值
msg = ('python','thank','shanghai') print(msg[1]) 输出: thank
-
切片(顾头不顾尾,步长)
msg = ('python','thank','shanghai') print(msg[1:2:1]) #输出: ('thank',)
-
长度len
msg = ('python','thank','shanghai') print(len(msg)) #输出: 3
-
成员运算in or not in
msg = ('python','thank','shanghai') print('python' in msg) print('thank' not in msg) #输出: True False
-
循环
msg = ('python','thank','shanghai') for name in msg: print(name) #输出: python thank shanghai
-
计数count
msg = ('python','thank','shanghai','python') print(msg.count('python')) #输出: 2
-
index
#对指定元素,求位置 msg = ('python','thank','shanghai') print(msg.index('thank')) # 输出: 1
-
存在一个或多个值:多个值
-
有序或无序:有序
-
可变不可变:不可变元素
三、元组和列表的区别
列表可变的原因是索引对应的值的内存地址是可改变的
元组不可变的原因是:索引对应的值的内存是不可以改变的,或者反过来说,只要有索引对应的值的内存没有改变,那么元组是始终不会改变的。