Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从列表中元组的n个索引生成dict_Python_List_Dictionary - Fatal编程技术网

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您尝试过什么吗?