列表-list
1. list 操作
列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。
一些常用的API如下:
list.append(x) # 在列表末尾添加新的元素,无返回值 list.count(x) # 统计某个元素在列表中出现的次数 list.extend(seq) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),无返回值 list.index(x) # 从列表中找出某个值第一个匹配项的索引位置 list.insert(index, x) # 将对象插入列表指定位置 list.pop([index=-1]) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.remove(x) # 移除列表中某个值的第一个匹配项 list.reverse() # 反向列表中元素 list.sort(key=None, reverse=False) # 对原列表进行排序,默认升序 list.clear() # 清空列表 list.copy() # 复制列表 len(list) # 列表元素个数
1)采用“+”,这种方式会把两个list中的元素合并为一个list,+ 的效果就等同于extend
l1 = [1, 2, 3] l2 = [4, 5, 6] l3 = l1 + l2 print(l3) # 元素合并,[1, 2, 3, 4, 5, 6] l4 = l1.extend(l2) print(l4) # None 因为extend无返回值 print(l1) # 元素合并,[1, 2, 3, 4, 5, 6] l4 = l1.append(l2) print(l4) # None 因为append无返回值 print(l1) # 增加一个新元素,[1, 2, 3, 4, 5, 6, [4, 5, 6]]
2)采用“*”,可以将list中的元素整体重复扩充
l1 = [1, 2, 3] print(l1 * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
2. 列表生成式
一种简洁的列表创建的方法,首先介绍下它的语法规则,exp 或者 condition 都是根据参数名来传递元素的:
[exp for x in iterable] # 每个 iterable 中的数据都做 exp 处理,处理结果生成列表 [exp for x in iterable_A for y in iterable_B] # 每迭代 iterable_A 中的一个元素,就把 ierable_B 中的所有元素都迭代一遍 [exp for x in iterable if condition] # 当 iterable 中的数据满足 if 条件时,做 exp 处理,处理结果生成列表 [exp1 if condition else exp2 for x in iterable] # 当 iterable 中的数据满足 if 条件时,做 exp1 处理,否则做 exp2 处理,处理结果生成列表
接下来举几个例子:
a = [x * x for x in range(1, 11)] # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] b = [x * x for x in range(1, 11) if x % 2 == 0] # [4, 16, 36, 64, 100] c = [m + n for m in 'ABC' for n in 'XYZ'] # ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ'] d = [x if x % 2 == 0 else -x for x in range(1, 11)] # [-1, 2, -3, 4, -5, 6, -7, 8, -9, 10] e = {'x': 'A', 'y': 'B', 'z': 'C' } f = [k + '=' + v for k, v in e.items()] # ['y=B', 'x=A', 'z=C']