我试图计算10个数的除数,并将它们作为值添加到字典中,但是当我尝试将其他除数附加到值列表时,它没有发生并被替换。我不知道为什么会这样。
a = []
t = dict()
for i in range(10):
a.append(input())
a = [int(i) for i in a]
for num in a:
for x in range (1, num + 1):
if (num % x) == 0:
t[num] = []
t[num].append(x)
print(t)
答案 0 :(得分:1)
这是因为您不应该重新初始化t[num]
:
a = []
t = dict()
for i in range(10):
a.append(input())
a = [int(i) for i in a]
for num in a:
for x in range (1, num + 1):
if (num % x) == 0:
if num not in t: # Here: init t[num] to [] only if it does not yet exist
t[num] = []
t[num].append(x)
print(t)
答案 1 :(得分:1)
defaultdict在这里可以使您的生活更轻松,因为它将确保列表分配。
from collections import defaultdict
a = []
t = defaultdict(list)
for i in range(10):
a.append(input())
a = [int(i) for i in a]
for num in a:
for x in range (1, num + 1):
if (num % x) == 0:
t[num].append(x)
print(t)