Python 如何从列表中元组的n个索引生成dict
我正在寻找字典理解,以执行以下操作:Python 如何从列表中元组的n个索引生成dict,python,list,dictionary,Python,List,Dictionary,我正在寻找字典理解,以执行以下操作: >>> my_list = [(1,2,3,4),(5,6,7,8)] >>> new_dict = dict( *python voodoo* ) >>> print new_dict {(1,2):'item1',(5,6):'item2'} d = {x[:2]:'item'+str(i+1) for i, x in enumerate(my_list)} 您需要以下内容: >>&g
>>> my_list = [(1,2,3,4),(5,6,7,8)]
>>> new_dict = dict( *python voodoo* )
>>> print new_dict
{(1,2):'item1',(5,6):'item2'}
d = {x[:2]:'item'+str(i+1) for i, x in enumerate(my_list)}
您需要以下内容:
>>> my_list = [(1,2,3,4),(5,6,7,8)]
>>> new_dict = dict( *python voodoo* )
>>> print new_dict
{(1,2):'item1',(5,6):'item2'}
d = {x[:2]:'item'+str(i+1) for i, x in enumerate(my_list)}
我将详细介绍它的工作原理,以便将来不再使用python巫毒:
首先,我们需要列表中每个元组的前两个值。这是通过列表切片:x[:2]完成的。这意味着给我x的前两个值
其次,利用enumerate,它可以使用基于0的索引有效地压缩我们的返回值。例如,如果我们在原始列表中调用enumerate:
>>> for enum in enumerate(my_list):
print(enum)
(0, (1, 2, 3, 4))
(1, (5, 6, 7, 8))
这将返回一个元组,第一个元素是索引,第二个元素是列表中的任何内容
我们可以通过将两个元素元组分配给两个值来解压它:
>>> for i, x in enumerate(my_list):
print(str(i) + " : " + str(x))
0 : (1, 2, 3, 4)
1 : (5, 6, 7, 8)
最后,我们需要做的就是将这些内容放入字典理解中,这与列表理解非常相似,并进行一些字符串转换。什么是item1和item2?显然,它们是Strings您尝试过什么吗?