元组和列表最大区别就是你可以任意修改列表中的元素,可以任意插入或者删除一个元素。而对元组是不行的,元组是不可改变的(像字符串一样)。
元组和列表,除了不可改变这个显著的特征之外,还有一个明显的区别是,创建列表用的是中括号,而创建元组大部时候分用的是小括号(注意,我这里说的是大部分);
tuple1=(1,2,3,4,5,6,7,8)
print(tuple1)
输出结果如下:
(1, 2, 3, 4, 5, 6, 7, 8)
访问元组的方式与列表无异:
tuple1=(1,2,3,4,5,6,7,8)
print(tuple1[2])
print(tuple1[:])
print(tuple1[:5])
print(tuple1[5:])
输出结果如下:
3
(1, 2, 3, 4, 5, 6, 7, 8)
(1, 2, 3, 4, 5)
(6, 7, 8)
也可使用分片的方式来复制一个元组;
tuple1=(1,2,3,4,5,6,7,8)
tuple2=tuple1[:]
print(tuple2)
输出结果如下:
(1, 2, 3, 4, 5, 6, 7, 8)
如果你试图修改元组的一个元组:
tuple1=(1,2,3,4,5,6,7,8)
tuple1[2]=6
python会很不开心:
Traceback (most recent call last):
File "C:/Users/zfw/PycharmProjects/untitled1/123/__init__.py", line 2, in <module>
tuple1[2]=6
TypeError: 'tuple' object does not support item assignment
如果说列表的标志性符号是中括号,那么元组的标志性符号又是啥?
有人说是小括,那么我们来看看;
temp=(1)
print(type(temp))
输出为:
<class 'int'>
还记得type()方法吧!作用是返回参数的类型,这里他返回说temp变量是整型(int),那么我们再来试试;
temp=1,2,3
print(type(temp))
输出为:
<class 'tuple'>
就算没有小括号,temp还是元组类型,所以逗号(,)才是关键,小括号只是起到补充的作用,但是如果你想创建一个空元组,那么直接使用小括号就行了:
temp=()
print(type(temp))
输出结果为;
<class 'tuple'>
但是这里要注意的是,如果要创建的元组中只有一个元素,请在它后面加上一个逗号(,),这样可以明确告诉python你要的是一个元组,不要那什么浮点型,整型来忽悠你:
temp=1,
temp1=(1,)
print(type(temp))
print(type(temp1))
输出结果为;
<class 'tuple'>
<class 'tuple'>
为了证明逗号(,)起到了决定性的作用,再给大家举个例子:
print(8*(8))
print(8*(8,))
输出结果为:
64
(8, 8, 8, 8, 8, 8, 8, 8)