将列表中的每个元素转换为键值对

Sai*_*mar 2 python python-3.x

我有两个清单

list1 = [1,a,2,b,3,c]
list2 = [5,d,6,e,7,f]
Run Code Online (Sandbox Code Playgroud)

我试着用 list(zip(list1, list2))

那就是我得到的:

[(1, 5), ('a', 'd'), (2, 6), ('b', 'e'), (3, 7), ('c', 'f')]
Run Code Online (Sandbox Code Playgroud)

我希望这样的东西成为我的输出:

{1:a, 5:d, 2:b, 6:e, 3:c,7:f}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

Chr*_*nds 8

通过iterzip:

>>> it = iter(list1 + list2)
>>> dict(zip(it,it))
{1: 'a', 2: 'b', 3: 'c', 5: 'd', 6: 'e', 7: 'f'}
Run Code Online (Sandbox Code Playgroud)

  • 我没有看到黑客,它类似于https://docs.python.org/3/library/itertools.html上的'石斑鱼'食谱 (2认同)
  • 它返回一个iterable(这里称为`it`),每次调用`next(it)`时都会产生一个项.你可以试试这个:`a = iter([1,2,3])``next(a)``next(a)``next(a)``next(a)` (2认同)