将列表转换为元组列表python

我是Python的新手,需要将列表转换为字典。 我知道我们可以将元组列表转换为字典。

这是输入列表:

L = [1,term1, 3, term2, x, term3,... z, termN]

我想将这个列表转换为一个元组列表(或者是一个字典),如下所示:

[(1, term1), (3, term2), (x, term3), ...(z, termN)]

我们如何轻松地做到这一点蟒蛇?


>>> L = [1, "term1", 3, "term2", 4, "term3", 5, "termN"]
# Create an iterator
>>> it = iter(L)
# zip the iterator with itself
>>> zip(it, it)
[(1, 'term1'), (3, 'term2'), (4, 'term3'), (5, 'termN')]

你想一次分三个项目?

>>> zip(it, it, it)

你想每次分组N个项目?

# Create N copies of the same iterator
it = [iter(L)] * N
# Unpack the copies of the iterator, and pass them as parameters to zip
>>> zip(*it)

尝试使用群组成语:

zip(*[iter(L)]*2)

从https://docs.python.org/2/library/functions.html:

可保证迭代的从左到右的评估顺序。 这使得使用zip(* [iter(s)] * n)将数据序列聚类为n长度组成为可能。


直接使用zip将字典直接列入字典中,以便连续匹配偶数和奇数元素:

m = [ 1, 2, 3, 4, 5, 6, 7, 8 ] 
d = { x : y for x, y in zip(m[::2], m[1::2]) }

或者,因为你熟悉元组 - >字典方向:

d = dict(t for t in zip(m[::2], m[1::2]))

甚至:

d = dict(zip(m[::2], m[1::2]))
链接地址: http://www.djcxy.com/p/24029.html

上一篇: Convert List to a list of tuples python

下一篇: Unzipping and the * operator