为什么值分配嵌套循环会分配比预期时间更多的时间?

时间:2019-04-20 22:25:48

标签: python-3.x nested-loops

我有一个嵌套的字典。原始词典具有i键,并且这些i键中的每一个都将j个其他键映射到列表。 我想为每个列表附加一个值。由于我知道字典的键,因此我在for(i) x for(j)循环中遍历键,并期望进行i*j分配。但我得到i*i*j的作业。我的错误在哪里?

我也尝试使用标准for i,j in dic.items()遍历字典,但是任务分配又超出了预期。

# creating empty dictionary
dic_2 = {}
for i in range (10):
    dic_2[i] = []

dic = {}
for i in range (10):
    dic[i] = dic_2

# =========================================
# appending values
counter = 0
for i in range (10):
#     print("counter = ", counter,'_________', "i = ", i)
    for j in range (10):
#         print("__", "counter = ", counter,"j = ", j)
        counter += 1
        dic[i][j].append(counter)
dic

我希望

dic[0][0] = [0] 

但我知道

dic[0][0] = [1, 11, 21, 31, 41, 51, 61, 71, 81, 91]

2 个答案:

答案 0 :(得分:0)

import * as VueLoaderPlugin from 'vue-loader/lib/plugin';的每个条目都是对同一词典dic的引用。要为每个dic_2获得单独的列表,您需要在嵌套循环中创建列表,因为当前代码为每个i,j使用相同的10个列表。

i

答案 1 :(得分:0)

此代码是否适合您的要求。

K = 10  # your range 
dic = {j:{i:[(K*j)+i] for i in range(K)} for j in {i:[i] for i in range(K)}}