Python中有四种集合数据类型:
- 列表(List) ——有序和可更改的集合。允许成员重复。
- 元组(Tuple) ——有序且不可更改的集合。允许成员重复。
- 集合(Set) ——无序和无索引的集合。没有重复的成员。
- 词典(Dictionary) ——无序,可变和有索引的集合。没有重复的成员。
列表(List)
- 创建列表:
# 访问列表:
list = ["xiaoan", "xiaoqiao", "xiaofang","xiaoping","xiaoma"]
print(list)
运行结果:
['xiaoan', 'xiaoqiao', 'xiaofang', 'xiaoping', 'xiaoma']
访问项目:
通过引用索引号访问列表项:
# 打印列表的第3项:
list = ["xiaoan", "xiaoqiao", "xiaofang","xiaoping"]
print(list[2]) # 起始位置为0
运行结果:
xiaofang
- 负的索引
负索引表示从末尾开始,-1 表示最后一个项目,-2 表示倒数第二个项目,依此类推。
打印列表的最后一项:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping"]
print(list[-1]) # -1 表示最后一个项目
运行结果:
xiaoping
-
索引范围
- 通过指定范围的起点和终点来指定索引范围。
- 指定范围后,返回值将是包含指定项目的新列表。
# 返回第一二三项:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping"]
print(list[1:4])
运行结果:
['xiaoqiao', 'xiaofang', 'xiaoping']
注:第一项的索引为 0,搜索从索引 1(包括)开始,到索引 4(不包括)结束。
- 负索引的范围
从列表末尾开始搜索,需指定负索引:
# 返回倒数第四项到倒数第二项:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
print(list[-4:-1])
运行结果:
['xiaoqiao', 'xiaofang', 'xiaoping']
- 更改项目值
改特定项目的值,需引用索引号:
# 更改第二项的值:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list[1] = 'xuemei'
print(list)
运行结果:
['xiaoan', 'xuemei', 'xiaofang', 'xiaoping', 'xiaoma']
遍历列表
for
循环遍历列表项:
# 逐个打印列表中的所有项目:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
for x in list:
print(x)
运行结果:
xiaoan
xiaoqiao
xiaofang
xiaoping
xiaoma
检查项目是否存在
用 in
和 not in
关键字确定列表中是否存在指定的项,如下:
# 检查项目是否存在于列表中
room1613 = ["xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
if "xiaoma" in room1613:
print("Yes, 'xiaoma' is in the 1613.")
if "xiaoan" not in room1613:
print("Yes, 'xiaoan' is not in the 1613.")
运行结果:
Yes, 'xiaoma' is in the 1613.
Yes, 'xiaoan' is not in the 1613.
列表长度
用 len()
确定列表中有多少项,如下:
list = ["xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
print(len(list))
运行结果:
4
添加项目
- 用
append()
将项目添加到列表的末尾,如下:
# 列表末尾添加项目
list = ["xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list.append("xiaoan")
print(list)
运行结果:
['xiaoqiao', 'xiaofang', 'xiaoping', 'xiaoma', 'xiaoan']
- 用
insert()
在指定的索引处添加项目,如下:
# 插入项目作为第二个位置:
list = ["xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list.insert(1, "xiaoan")
print(list)
运行结果:
['xiaoqiao', 'xiaoan', 'xiaofang', 'xiaoping', 'xiaoma']
删除项目
remove()
方法删除指定的项目,例如:
# 删除指定的项目:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list.remove( "xiaoan")
print(list)
运行结果:
['xiaoqiao', 'xiaofang', 'xiaoping', 'xiaoma']
pop()
删除指定的索引(如果未指定索引,则删除最后一项),例如:
# 删除指定的项目:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list.pop(0)
print(list)
运行结果:
['xiaoqiao', 'xiaofang', 'xiaoping', 'xiaoma']
del
关键字删除指定的索引:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
del list[0:2]
print(list)
运行结果:
['xiaofang', 'xiaoping', 'xiaoma']
del
关键字能完整地删除列表:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
del list
clear()
方法清空列表:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list.clear()
print(list)
运行结果:
[]
-
复制列表
通过键入 list2 = list1 来复制列表,因为list2 只是对 list1 的引用,list1 中所做的更改也将自动在 list2 中进行。
- 用内置的 List 方法
copy()
进行复制,如下:
# copy()方法进行复制:
list = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list2 = list.copy()
print(list2)
运行结果:
['xiaoan', 'xiaoqiao', 'xiaofang', 'xiaoping', 'xiaoma']
- 制作副本的另一种方法是使用内建的方法
list()
# list()方法进行复制:
list1 = ["xiaoan", "xiaoqiao", "xiaofang", "xiaoping", "xiaoma"]
list2 = list(list1)
print(list2)
运行结果同上。
合并两个列表
- 最简单的方法之一是使用
+
运算符。
# + 运算符合并两个列表
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
list3 = list1 + list2
print(list3)
运行结果:
['a', 'b', 'c', 1, 2, 3]
- 将 list2 中的所有项一个接一个地
append()
追加到 list1 中:
#把 list2 追加到 list1 中:
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
for x in list2:
list1.append(x)
print(list1)
运行结果同上。
extend()
,将一个列表中的元素添加到另一列表中:
# extend() 方法将 list2 添加到 list1 的末尾:
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
list1.extend(list2)
print(list1)
运行结果同上。
list() 构造函数
创建一个新列表。
# list() 构造函数创建列表:
thislist = list(("xiaoan", "xiaoqiao", "xiaoma","xiaofang")) # 注意双括号
print(thislist)
运行结果:
['xiaoan', 'xiaoqiao', 'xiaoma', 'xiaofang']
列表方法
Python 可以在列表上使用的内建方法:
方法 | 介绍 |
---|---|
append() | 在列表的末尾添加一个元素 |
clear() | 删除列表中的所有元素 |
copy() | 返回列表的副本 |
count() | 返回具有指定值的元素数量 |
extend() | 将列表元素(或任何可迭代的元素)添加到当前列表的末尾 |
index() | 返回具有指定值的第一个元素的索引 |
insert() | 在指定位置添加元素 |
pop() | 删除指定位置的元素 |
remove() | 删除具有指定值的项目 |
reverse() | 颠倒列表的顺序 |
sort() | 对列表进行排序 |