如何在完成对键值的迭代后停止循环?
How to make a loop stop after it's done iterating through a key's values?
标题有点复杂,我对 Python 还很陌生。
这是我的问题,
我目前有一本字典,我正在尝试根据规则创建一个元组。我已经控制了元组的创建,我只需要一种不同的迭代方式,这样我就可以创建我的元组
这是我拥有的:
“i”经过的列表标题为 DEMANDPOINT= [1,2,3.......954]
我的第二个列表是,一个由 734 个组组成的元组,每个组有 5 个数字,标题为 tuples of stations
“j”通过这个
我有一个这样的嵌套字典:distance5 = {1: {513: 0.6291397367847646, 279: 0.7823399663201693, 582: 0.8703625254182541, 392: 1.0191414569956174, 297: 1.0660162833624383}, 2: {297: 1.1155101452481397, 279: 1.458507500394341, 513: 1.7296683927743512, 582: 1.8516961940275365, 392: 2.0394772611422898}
我希望“迭代器 i =1”在检查 tuple_of_stations 的第一组 5 个数字后停止,并切换到 2。
这是我用来创建元组的代码。
for i in DEMANDPOINT:
for j in tuple_of_stations:
if distance5[i][j] <= Dc:
N[i] += (j,)
if len(N[i]) == 0:
N[i] += ((min(distance5[i], key=distance5[i].get)),)
我希望“迭代器 i”在检查第一个字典的值后停止。我不知道我该怎么做。
基本上是这样的:example image在示例中,我已经解释了我希望迭代器如何通过。
抱歉,如果这不是一个清晰的解释,我已经尽力解释了我的问题。提前致谢
我对代码做了一些改动,如果现在它能满足您的需要,请告诉我:
N = {}
for i in distance5:
tuple_of_stations = list(distance5[i].keys())
c = 0
for j in tuple_of_stations:
if distance5[i][j] <= Dc:
if i not in N:
N[i] = (j,)
else:
N[i] += (j,)
c += 1
if c >= 5:
break
if i not in N:
N[i] = ((min(distance5[i], key=distance5[i].get)),)
elif not N[i]:
N[i] += ((min(distance5[i], key=distance5[i].get)),)
标题有点复杂,我对 Python 还很陌生。
这是我的问题, 我目前有一本字典,我正在尝试根据规则创建一个元组。我已经控制了元组的创建,我只需要一种不同的迭代方式,这样我就可以创建我的元组
这是我拥有的:
“i”经过的列表标题为 DEMANDPOINT= [1,2,3.......954]
我的第二个列表是,一个由 734 个组组成的元组,每个组有 5 个数字,标题为 tuples of stations
“j”通过这个
我有一个这样的嵌套字典:distance5 = {1: {513: 0.6291397367847646, 279: 0.7823399663201693, 582: 0.8703625254182541, 392: 1.0191414569956174, 297: 1.0660162833624383}, 2: {297: 1.1155101452481397, 279: 1.458507500394341, 513: 1.7296683927743512, 582: 1.8516961940275365, 392: 2.0394772611422898}
我希望“迭代器 i =1”在检查 tuple_of_stations 的第一组 5 个数字后停止,并切换到 2。
这是我用来创建元组的代码。
for i in DEMANDPOINT:
for j in tuple_of_stations:
if distance5[i][j] <= Dc:
N[i] += (j,)
if len(N[i]) == 0:
N[i] += ((min(distance5[i], key=distance5[i].get)),)
我希望“迭代器 i”在检查第一个字典的值后停止。我不知道我该怎么做。
基本上是这样的:example image在示例中,我已经解释了我希望迭代器如何通过。
抱歉,如果这不是一个清晰的解释,我已经尽力解释了我的问题。提前致谢
我对代码做了一些改动,如果现在它能满足您的需要,请告诉我:
N = {}
for i in distance5:
tuple_of_stations = list(distance5[i].keys())
c = 0
for j in tuple_of_stations:
if distance5[i][j] <= Dc:
if i not in N:
N[i] = (j,)
else:
N[i] += (j,)
c += 1
if c >= 5:
break
if i not in N:
N[i] = ((min(distance5[i], key=distance5[i].get)),)
elif not N[i]:
N[i] += ((min(distance5[i], key=distance5[i].get)),)