嵌套for循环在第一次迭代后不在python中运行



我有一个嵌套的for循环,它在第一次迭代后不运行

N, M = map(int, input().split())
numbers = map(int, input().split())
dic = {}
for m in range(N):
dic.setdefault(m,[])
for n in numbers:
if n % N == m:
dic[m].append(n)
print(dic)

以上代码为下面的示例数据生成以下结果{0: [3, 42], 1: [], 2: []}:

3 5
1 3 8 10 42

然而,我想得到{0: [3, 42], 1: [1, 10], 2: [8]}我做错了什么?

问题是map返回一个迭代器,而您在第一个外部循环中完全使用了迭代器。你需要:

numbers = [int(k) for k in input().split()]

代替map

try this:

N, M = map(int, input().split())
numbers = [int(x) for x in input().split()]
dic = {}
for m in range(N):
dic.setdefault(m,[])
for n in numbers:
print(n % N)
if n % N == m:
dic[m].append(n)
print(dic)

相关内容

  • 没有找到相关文章

最新更新