列表-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']      

  

posted @ 2020-06-25 17:14  _yanghh  阅读(126)  评论(0编辑  收藏  举报