chars = ["a", "b", "c", "d", "e", "f", "g"]
nums = [0, 1, 2, 3, 4, 5, 6]
# ([0, 1, 2, 3, 4, 5], ['a', 'b', 'c', 'd', 'e', 'f']) temp = chars, nums
# ([1, 2, 3, 4], [5, 6, 7, 8]) temp = [1, 2, 3, 4], [5, 6, 7, 8]
# [] chars = list()
# ['a', 'b', 'c'] letters = list("abc")
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] nums = list( range(10) )
[x for x in iterable condition]:借助for循环遍历可迭代数据
第一个x可以是表达式,对处理每一个迭代数据
可以先筛选数据再生成新数据
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] nums = [x for x in range(10)]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] nums = [2 * x for x in range(10)]
# [False, False, False, False, False, False, True, True, True, True] nums = [x > 5 for x in range(10)]
# [6, 7, 8, 9] nums = [x for x in range(10) if x > 5]
nums + chars
# 0 nums[0] # i chars[1]
# 9 nums[-1] # e chars[-2]
会改变元素位置
稳定排序 stable
key:一个函数,用于指定排序的关键字。默认为 None,表示直接比较元素本身,适用简单数据;复合数据通常需要指定key;可以是系统函数,也可以是自定义函数
reverse:倒叙排序;默认为假 false
更多信息,请访问 Python - sort
# [1, 2, 3, 7, 7, 9, 12, 32, 76] nums = [1, 3, 7, 2, 9, 7, 12, 76, 32] nums.sort()
# ['a', 'a', 'c', 'l', 'm', 'n', 'n', 'p'] letters = list("cnplaman") letters.sort()
汉字通常编码为3-4个字节;3 字节模板:1110xxxx 10xxxxxx 10xxxxxx
"陆".encode("utf-8") 编码为3个字节:b'\xe9\x99\x86'
# ['作', '军', '学', '战', '特', '种', '陆', '院'] letters = list("陆军特种作战学院") letters.sort()
# [76, 32, 12, 9, 7, 7, 3, 2, 1] nums.sort(reverse=True)
# ['张三', '王五', '李明四'] stus = ["张三", "李明四", "王五"] stus.sort(key=len)
stus = [ {"name": "张三", "age": 20}, {"name": "李明四", "age": 19}, {"name": "王五", "age": 22}, ] # 根据年龄排序;自定义函数 # [{'name': '李明四', 'age': 19}, {'name': '张三', 'age': 20}, {'name': '王五', 'age': 22}] stus.sort(key=lambda x: x["age"]) # 按照名字长度排序;自定义函数 # [{'name': '张三', 'age': 20}, {'name': '王五', 'age': 22}, {'name': '李明四', 'age': 19}] stus.sort(key=lambda x: len(x["name"]))
将排序后的结果作为新的列表返回,不会改变原来列表元素位置