list和tuple
首先来一波简单粗暴的对比
:
1、python中的列表list是变量,而元组tuple是常量。简单地说元组是固定不可改变的,意味着一旦被创建它的内容无法被修改;列表则不同,被创建可根据自己的想法随意改变,同时改变列表的函数方法也有很多。
2、列表:是使用方括号[]
元组:则是使用圆括号()
不过两者都可以使用索引读取值
列表list
代码语言:javascript复制# 1、根据索引修改
my_list = [1,2,3,4,5]
my_list[1] = 10
my_list[0] = my_list[1] * my_list[2] # 10乘以3
print(my_list)
运行结果:
代码语言:javascript复制[30, 10, 3, 4, 5]
1. 列表中的append()和extend()
代码语言:javascript复制# 两者都是对列表增加元素的方法,都不支持多参数
# 但是append()向列表中添加一个作为整体的对象,extend()是把一个可迭代对象的内容迭代添加到列表中
my_list = [1,2,3,4,5]
my_list2 = [1,2,3,4,5]
temp = [100]
my_list.append(temp)
my_list2.extend(temp) # temp是一个单元素列表,是一个可迭代对象,迭代出10添加
print(my_list)
print(my_list2)
运行结果:
代码语言:javascript复制[1, 2, 3, 4, 5, [100]] # append()结果
[1, 2, 3, 4, 5, 100] # extend()结果
2. 列表中的remove()、pop()和del
代码语言:javascript复制# remove:删除单个元素,删除首个符合条件的元素,按值删除,返回值为空
# pop:删除索引位置元素,无参情况下删除最后一个元素,返回删除的元素值
# del:简单粗暴,可传索引值参数删除符合条件的元素,也可不接参数整个删除
my_list = [1,2,3,2,4,5]
my_list2 = [1,2,3,2,4,5]
my_list3 = [1,2,3,2,4,5]
print(my_list.remove(2)) # 删除第一个2
print(my_list)
print(my_list2.pop(2)) # 删除索引值为2的元素3
print(my_list2.pop()) # 删除最后一个元素5
del my_list3[2]
print(my_list3)
del my_list3[0:2]
print(my_list3)
del my_list3
print(my_list3)
运行结果:
代码语言:javascript复制None
[1, 3, 2, 4, 5]
3
5
[1, 2, 2, 4, 5]
[2, 4, 5]
Traceback (most recent call last):
File "D:/study_test/python_study/t1.py", line 19, in <module>
print(my_list3)
NameError: name 'my_list3' is not defined
元组tuple
1. 创建元组
代码语言:javascript复制my_tup = ()
my_tup = (100) # 不可,切记单元素创建元组这样写会被理解成int类型
my_tup = (100,)
运行输出结果可知:
代码语言:javascript复制() <class 'tuple'>
100 <class 'int'>
(100,) <class 'tuple'>
2. “修改”元组
元组中的元素值是不允许修改
的,但我们可以对元组进行连接组合 -- “创建了一个新的元组”
my_tup = [1,2,3]
my_tup2 = ['a','b','c']
my_tup3 = my_tup my_tup2
print(my_tup3)
运行结果:
代码语言:javascript复制[1, 2, 3, 'a', 'b', 'c']
3. “删除”元组
元组中的元素值是不允许删除
的,但我们可以使用del语句来删除整个元组
my_tup = [1, 2, 3, 'a', 'b', 'c']
print(my_tup)
del my_tup
print("del操作后的my_tup:", my_tup)
运行结果:
代码语言:javascript复制[1, 2, 3, 'a', 'b', 'c']
Traceback (most recent call last):
File "D:/study_test/python_study/t1.py", line 5, in <module>
print("del操作后的my_tup:", my_tup)
NameError: name 'my_tup' is not defined
ps:如果你需要看更详细的内容,可以阅读我写的这篇文章原创| 你可能真的不太了解列表和元组
代码语言:javascript复制我是kuls欢迎加我微信交流学习阅读更多精彩文章,可以关注我!