Python中的元组和列表的区别

元组和列表是近亲关系,所以元组和列表在实际使用上是非常相似的。

>>> list1 = [1,2,3,4,5,6,7,8,9]
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]

我们主要从以下几个点来进行讨论学习:

  • 创建一个元组

    创建一个元组(大部分情况下用的是小括号)

>>> tuple1 = (1,2,3,4,5,6,7,8,9)
>>> tuple1
(1, 2, 3, 4, 5, 6, 7, 8, 9)

   创建一个列表(大部分情况下用的是中括号)

>>> list1 = [1,2,3,4,5,6,7,8,9]
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 访问元组和访问列表是一样的
>>> tuple1[1]
2
>>> tuple1[5:]
(6, 7, 8, 9)
>>> tuple1[:5]
(1, 2, 3, 4, 5)
  • 元组的拷贝也是一样的
>>> tuple2 = tuple1[:]
>>> tuple2
(1, 2, 3, 4, 5, 6, 7, 8, 9)

元组中的元素不是说改就能改的

>>> tuple1[1] = 3
Traceback (most recent call last):
  File "<pyshell#64>", line 1, in <module>
    tuple1[1] = 3
TypeError: 'tuple' object does not support item assignment

上面想把元组的第二个元素修改成3,此时会报错

列表的标志性符号是中括号 [ ] ,那么元组的标志性符号是什么?是小括号  ( ) 吗?

那么我们先举个例子吧

>>> temp = (1)
>>> temp
1
>>> type(temp)
<class 'int'>

我们可以看到,上面小括号的类型是int

>>> temp2 = 2,3,4
>>> type(temp2)
<class 'tuple'>

上面的例子告诉我们,没有小括号,temp2的类型仍然是tuple,那么小括号不是关键,逗号才是关键

那么temp = (1) temp =(1,)   和 temp = 1,有什么区别呢?

temp = (1) 就是普通元素,而temp = (1,) 因为有了逗号,所以就是元组类型,temp =1, 虽然没有小括号,但是因为有逗号,所以是类型是元组。再次证明元组的标志性符号是逗号

>>> temp1 = (1)
>>> type(temp1)
<class 'int'>
>>> temp2 =(1,)
>>> type(temp2)
<class 'tuple'>
>>> temp3 = 1,
>>> type(temp3)
<class 'tuple'>
  • 创建空元组和空列表

创建空列表

>>> list1 = []
>>> type(list1)
<class 'list'>

创建空元组

>>> tuple1 = ()
>>> type(tuple1)
<class 'tuple'>
  • 给元组添加新元素
>>> tuple1 = ('aa','bb','dd','ee')
>>> tuple1 = tuple1[:2] + ('cc',) + tuple1[2:]
>>> tuple1
('aa', 'bb', 'cc', 'dd', 'ee')
  • 删除整个元组
>>> tuple1
('aa', 'bb', 'cc', 'dd', 'ee')
>>> del tuple1
>>> tuple1
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    tuple1
NameError: name 'tuple1' is not defined

删除整个元组后再次访问该元组就会报错。

  • 元组相关的操作符

拼接操作符 + 

>>> tuple1 = ('aa','bb','dd','ee')
>>> tuple1 = tuple1[:2] + ('cc',) + tuple1[2:]
>>> tuple1
('aa', 'bb', 'cc', 'dd', 'ee')

重复操作符 *

>>> temp = (8,)
>>> temp *= 8
>>> temp
(8, 8, 8, 8, 8, 8, 8, 8)

关系操作符和逻辑操作符等和列表一样

猜你喜欢

转载自blog.csdn.net/liu_hong_yan/article/details/114680121