zip

迭代遍历两个列表,或者构建一个字典对象

enumerate

输出索引值的迭代遍历输出

combinations

迭代列表组合

permutations

迭代列表组合排序

itertools.chain.from_iterable

将单个iterable的所有元素拼接输出

itertools.chain

链接可遍历对象

  1. list1 = [1, 2, 3]
  2. list2 = ['aa', 'bb', 'cc', 'dd']
  3. for i, j in zip(list1, list2):
  4. print(str(i) + j)
  5. print(dict(zip(list1, list2)))
  6. for x in combinations(list1, 3):
  7. print(x)
  8. print("------------------------")
  9. for i in permutations(list1, 3):
  10. print(i
  11. ---------------------------------------------
  12. #1aa
  13. #2bb
  14. #3cc
  15. #{1: 'aa', 2: 'bb', 3: 'cc'}
  16. #(1, 2, 3)
  17. #------------------------
  18. #(1, 2, 3)
  19. #(1, 3, 2)
  20. #(2, 1, 3)
  21. #(2, 3, 1)
  22. #(3, 1, 2)
  23. #(3, 2, 1)
  24. """连接列表"""
  25. import itertools
  26. from itertools import chain
  27. test = [[-1, -2], [30, 32], [23, 33]]
  28. print(list(itertools.chain.from_iterable(test)))
  29. #[-1, -2, 30, 32, 23, 33]
  30. test = chain('ab', 'c', 'd')
  31. print(list(test)) # #['a', 'b', 'c', 'd']
  32. a = [1, 4]
  33. b = [11, 42]
  34. c = [14, 423]
  35. print(sum((a, b, c), [])) # [1, 4, 11, 42, 14, 423]

列表的各种连接方式

  1. # 1/itertools
  2. from itertools import chain
  3. list1 = [1, 3, 4]
  4. list2 = [12, 23, 42]
  5. list3 = [13, 33, 34]
  6. # itertools.chain
  7. print(list(chain(list1, list2, list3)))
  8. # 解包
  9. print([*list1, *list2, *list3])
  10. # extend
  11. # list1.extend(list2)
  12. # print(list1)
  13. # 推导式
  14. # for i in
  15. print([x for i in (list1, list2, list3) for x in i])
  16. tuidaolist = []
  17. for i in (list1, list2, list3):
  18. for j in i:
  19. tuidaolist.append(j)
  20. print(tuidaolist)
  21. # 使用heapq, 附带排序
  22. from heapq import merge
  23. print("使用heapq, 附带排序", list(merge(list1, list2, list3)))
  24. # 使用魔术方法
  25. print("使用魔术方法", list1.__add__(list2).__add__(list3))
  26. # 魔术方法 + reduce
  27. from functools import reduce
  28. print("魔术方法 + reduce", reduce(list.__add__, (list1, list2, list3)))
  29. # 使用yield from 可接一个可迭代对象,用于迭代并返回其中的每个元素
  30. def merge(*lists):
  31. for l in lists:
  32. print("-----")
  33. yield from l
  34. print("--&---")
  35. print(list(merge(list1, list2, list3)))
  36. # 借用sum函数
  37. print(sum((list1, list2, list3), []))