Python - 列表(list)常用操作

列表创建

创建列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。列表内可以放任何类型的数据。
格式:列表名 = [列表项1, 列表项2 ... 列表项n]

# 创建一个空列表
list_00 = []

# 创建一个带有元素的一维列表
list_01 = ["六", 6, 6.88, True, None, {
    
    "name": "彦祖"}]

# 创建一个多维列表(以二维为示例)
list_02 = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

列表增删改查

查询

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']

# 列表索引从 0 开始,第二个索引是 1,依此类推
print(list[0])
print(list[1])
print(list[2])
# 输出:
red
green
blue

# 索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推
print(list[-1])
print(list[-2])
print(list[-3])
# 输出:
black
white
yellow

# 使用下标索引来访问列表中某个下标范围的值,包头不包尾
print(list[2:5])
# 输出:
['blue', 'yellow', 'white']

更新

list = ['乐昌', '测试工程师', 18, '男', True]
print("第三个元素为 : ", list[2])
list[2] = 24	# 更新小标为2的元素为 24
print("更新后的第三个元素为 : ", list[2])

# 输出
第三个元素为 :  18
更新后的第三个元素为 :  24

增加

append()方法来添加列表项

list_01 = ['乐昌', '测试工程师', 18]
list_01.append('男')
print(list_01)
# 输出
['乐昌', '测试工程师', 18, '男']

删除

del语句来删除列表的的元素

list_01 = ['乐昌', '测试工程师', 18]
print("删除前:", list_01)
del list_01[1]
print("删除后:", list_01)
# 输出:
删除前:['乐昌', '测试工程师', 18]
删除后:['乐昌', 18]

去重

list_01 = ['乐昌', '测试工程师', 18, '乐昌', '测试工程师', 18]

# 方式一:遍历整个列表,将每个元素首次出现放入新列表
res = []
for i in list_01:
    if i not in res:
        res.append(i)
print(res)		# ['乐昌', '测试工程师', 18]

# 方式二:使用列表推导式编列整个列表,将每个元素首次出现放入新列表
res = []
[res.append(i) for i in list_01 if i not in res]
print(res)		# ['乐昌', '测试工程师', 18]

# 方式三:使用 set(),最流行的方法。这种方法的缺点是set后列表中元素的顺序和原来不一样
list_01 = list(set(list_01))
print(list_01)		# ['乐昌', '测试工程师', 18]

# 方式四:enumerate(),此方法保持列表中元素的顺序
res = [i for n, i in enumerate(list_01) if i not in list_01[:n]]
print(res)		# ['乐昌', '测试工程师', 18]

# 方法五:使用 collections.OrderedDict.fromkeys()
# 这是完成特殊任务的最快方式。它首先删除列表中的重复项并返回一个字典,最后将其转换为列表。此方法也可用于字符串,之后列表中元素的顺序也发生了变化。
res = list(OrderedDict.fromkeys(list_01))
print(res)		# ['乐昌', '测试工程师', 18]

# 方法六:处理嵌套列表中的重复元素
# 用于多维列表(列表嵌套)重复元素移除。这里假设列表(也是一个列表)中具有相同元素(但不一定是相同顺序)的元素被认为是重复的。然后使用下面的 set() + sorted() 方法完成任务。
test_list = [[1, 2, 3], [3, 2, 1], [3, 2, 1], [1, 2, 3], [-3, -2, -1]]
res = list(set(tuple(sorted(sub)) for sub in test_list))
print(res)		# [(1, 2, 3), (-3, -2, -1)]

列表操作符

  • len(list):获取列表长度(列表包含的元素数量)。
  • list + list:两个列表组合为一个新的列表。
  • list * n:列表中添加n个相同的列表元素。
  • x in list:判断元素x是否存在于list中。
  • for x in list: print(x, end=" "):循环输出列表元素。
  • operator.eq(list01,list02):判断两个列表是否相等
import operator

list_01 = ['乐昌', '测试工程师', 18]

print(len(list_01))             # 3

new_list = list_01 + list_01
print(new_list)                 # ['乐昌', '测试工程师', 18, '乐昌', '测试工程师', 18]

new_list02 = list_01 * 2
print(new_list02)               # ['乐昌', '测试工程师', 18, '乐昌', '测试工程师', 18]

print('测试工程师' in list_01)   # True

for x in list_01 : print(x, end=" ")    # 乐昌 测试工程师 18

print(operator.eq(new_list, new_list02))    # True

列表函数&方法

函数

  • len(list):列表元素个数
  • max(list):返回列表元素最大值
  • min(list):返回列表元素最小值
  • list(seq):将元组转换为列表
list_01 = [5, 8, 18]        
print(len(list_01))         # 3
print(max(list_01))         # 18
print(min(list_01))         # 5
print(list((1, "2", 3)))    # [1, '2', 3]

方法

方法 说明
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素
list.sort( key=None, reverse=False) 对原列表进行排序
list.clear() 清空列表
list.copy() 复制列表


list_01 = ['乐昌', '测试工程师', 18]


list_01.append("乐昌")
print(list_01)		# ['乐昌', '测试工程师', 18, '乐昌']

list_01.count("乐昌")
print(list_01)		# 2

list_01.extend(["1", 2, 3])
print(list_01)		# ['乐昌', '测试工程师', 18, '乐昌', '1', 2, 3]

index_01 = list_01.index("测试工程师")
print(index_01)		# 1

list_01.insert(1, "666")
print(list_01)		# ['乐昌', '666', '测试工程师', 18, '乐昌', '1', 2, 3]

list_01.pop(5)
print(list_01)		# ['乐昌', '666', '测试工程师', 18, '乐昌', 2, 3]

list_01.remove("乐昌")
print(list_01)		# ['666', '测试工程师', 18, '乐昌', 2, 3]

list_01.reverse()
print(list_01)		# [3, 2, '乐昌', 18, '测试工程师', '666']

list_02 = [3, 2, 1]
list_02.sort()
print(list_02)		# [1, 2, 3]

list_03 = list_01.copy()
print(list_03)		# [3, 2, '乐昌', 18, '测试工程师', '666']

猜你喜欢

转载自blog.csdn.net/weixin_44988085/article/details/129322143