Skip to main content

元祖

关系转换

列表 => 字符串

tar_list = [1,2,3,4]

# 如果元素是字符串
tar_str = [{",".join(tar_list)}]

# 如果元素是数字
tar_str = [{",".join([str(e) for e in tar_list])}]

字符串 => 列表

tar = '1,2,3,4'

tar_list = tar.split(',')

列表 => 字典

tar_list = ['a', 'b']

tar_dict = { each:tar_list[each] for each in tar_list }
# 最后结果: { '1':'a', '2':'b' }

基础操作

基础使用

单个元祖使用时,需要添加逗号 t = (1,)

括号( )既可以表示tuple,又可以表示数学公式中的小括号。所以,如果元组只有1个元素,就必须加一个逗号,防止被当作括号运算。

列表元素操作

操作相关API说明
追加:在末尾添加单个元素list.append(item)入栈
合并1:在末尾添加多个元素list1.extend(list2)
合并2:使用 "+" 列表合并 与 extend() 是等价的list3 = list1 + list2
复制:类似与 [:] 复制一个列表new_list = list.copy()
插入:索引处插入元素list.insert(index,item)在 index
删除:移除指定索引位置的元素del list[index]del list[start:end]
删除:会移除列表中第一个匹配的元素list.remove(item)没有返回值
删除:删除指定索引的元素list.pop(index)返回被删除的元素
删除:删除一个元素list.pop()出栈
删除:从头部
清空:清空一个数组list.clear()
统计:返回指定元素的个数list.count(item)返回 item 出现的次数
查找:查找一个元素是的索引是多少list.index(item)
查询:判断一个元素是否存在列表中tem in list
排序:原数组重新排序list.sort修改原数组
排序:返回新的排序好的数组sorted(list)
反转:反转(改变源数据)list.reverse()

切片操作

操作命令说明
方向:从右往左切list[-1:-5:2]
方向:从左往右切list[-1:-5:-1]
复制:列表new_list = list[:]
步长:第三个为步长,跳着切list[0:-1:2]
反转:(不改变源数据)new_list = list[::-1]

列表推导

  • 优点:代码缩减,不需要新建空列表,内置append方法
  • 缺点:不易于阅读,如果是处理复杂流程,不应使用

基础语法

# 传统写法
new_list = []
for each_item in data:
new_list.append(func(data))

# 推导写法
new_list = [func(data) for each_item in data]
# 原生写法
res_list = []
for each in ["string", "int", "float", "params"]:
each_res = return_list(each)
res_list.append(each_res)

# 将列表展开,组成新的单层列表
res = []
for each in res_list:
if len(each) > 0:
res += each


# 推导写法
res = [for each in ["string", "int", "float", "params"] for res in return_list(each) if len(res)>0]

字典中使用

# 传统写法
new_dict={}
for each in tar:
new_dict[each] = tar[each]

# 推导写法
new_dict = { each:tar[each] for each in tar if tar[each] }
#{ new_dict[each]:tar[each], ...}

使用示例

列表推导

 # 将分钟转换为时间
mins = [1, 2, 3]
secs = [m*60 for m in mins]

# 支持多层套用
secs = sorted([str(m*60) for m in [1, 2, 3]])
# [60, 120, 180]
# ['60', '120', '180']

# 将字母转换成大写
lower = ["I", "don't", "like", "pan"]
upper = [m.upper() for m in lower]
# ["I", "DON'T", "LIKE", "PAN"]

# 自身的元素处理,结果返回自身
count = [float(s) for s in count]

给字段格式的列表进行排序

res_list = [
{"id":2, "name":"xxxx"}
{"id":4, "name":"xxxx"}
{"id":1, "name":"xxxx"}
{"id":3, "name":"xxxx"}
]

# 根据 id 字段进行排序
res_list_sorted_by_id = sorted(res_list, key=lambda item:item['id'])

集合从头部删除数据

tar = [0, 1, 2, 3, 5]
num_set = set(tar)

num_set.pop()
print(num_set)