一分钟学Python|Python的列表和元组

list和tuple

首先来一波简单粗暴的对比

1、python中的列表list是变量,而元组tuple是常量。简单地说元组是固定不可改变的,意味着一旦被创建它的内容无法被修改;列表则不同,被创建可根据自己的想法随意改变,同时改变列表的函数方法也有很多。

2、列表:是使用方括号[]

元组:则是使用圆括号()

不过两者都可以使用索引读取值


列表list


# 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)


运行结果:


[30, 10, 3, 4, 5]


1. 列表中的append()和extend()


# 两者都是对列表增加元素的方法,都不支持多参数
# 但是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)
运行结果:
[1, 2, 3, 4, 5, [100]]  # append()结果
[1, 2, 3, 4, 5, 100]    # extend()结果


2. 列表中的remove()、pop()和del


# 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)
运行结果:
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. 创建元组


my_tup = ()
my_tup = (100) # 不可,切记单元素创建元组这样写会被理解成int类型
my_tup = (100,)
运行输出结果可知:
() <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)


运行结果:


[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)
运行结果:
[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
上一篇:Android线程间通信之handler


下一篇:Android Coding利器之掌握小技巧,助你Coding更上一层楼~