Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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 遍历列表字典_Python - Fatal编程技术网

Python 遍历列表字典

Python 遍历列表字典,python,Python,我有一个字典(dict_of_list),它的值是元组列表(在_list内部)。我用10个条目填充字典,每个条目由100个元组组成。执行此操作的代码如下所示: inside_list = [] dict_of_list = collections.defaultdict(list) for j in range(0, 10): for i in range(0, 100): inside_list.append((j, i)) dict_of_list[j].ap

我有一个字典(dict_of_list),它的值是元组列表(在_list内部)。我用10个条目填充字典,每个条目由100个元组组成。执行此操作的代码如下所示:

inside_list = []
dict_of_list = collections.defaultdict(list)
for j in range(0, 10):
    for i in range(0, 100):
        inside_list.append((j, i))
    dict_of_list[j].append(inside_list)
现在,为了迭代字典并只打印_列表中列表中所有元组的第二个值(即j值),我想我需要使用2个循环,一个迭代字典,另一个迭代内部_列表。所以我写了以下内容:

for k in dict_of_list.keys():
    for item in dict_of_list[k]:
        print(item[1])
然而,我得到的结果是:

(0, 1)
(0, 1)
(0, 1)
(0, 1)
(0, 1)
(0, 1)
(0, 1)
(0, 1)
(0, 1)
(0, 1)
我的问题是,为什么“item”不是列表中的元组,而是看起来它是完整的内部列表

为了解决这个问题,我添加了另一个for循环:

for k in dict_of_list.keys():
    for item in dict_of_list[k]:
        for x in item:
          print(x[1])

但是,for循环语句“for item in dict_of u list[k]”首先有什么用呢?

您正在执行的是
dict_of u list[j]。append(in_list)
,因此
dict_of u list[j]
[[(x,x),(x,x)]
(一个包含单个元素的列表,也就是元组列表。您可能需要

dict_of_list[j] = inside_list

相反,在这种情况下,您根本不需要
defaultdict
。还要注意
dict\u of\u list
的所有元素都是同一个列表(包含1000个元素),如果您想要不同的列表,请将
内部的\u list
初始化移动到第一个循环中。

这是一个虚假的示例,还是您真的希望列表以这种方式由
i,j
组成

如果是这样,除了内部循环外,还有更有效的方法生成列表:

dict_of_list = {}
for j in range(10):
    dict_of_list[j] = zip([j]*100,range(100))

因为每个
item
都是
dict\u-of-u-list[k]
。你为什么希望它是一个元组呢?dict\u-of-u-list有什么用?我希望每个item都是在-u-list中的类型。因为这就是我在“dict\u-of-list[j]中附加的内容。附加(在-u-list中)”恐怕这是个假的例子。我真正的问题相当复杂,很可能会分散注意力。谢谢。我也这么想。祝你好运。