【发布时间】:2019-06-04 06:06:16
【问题描述】:
好的,我知道有几个类似的问题,但没有运气。我所拥有的是 (2) for 循环,在内部 for 循环中带有一个 while 语句和 2 个以列表为值的字典。我希望完成的是获取一个新键并进行一些计算,进入第二个循环,计算第二个字典值列表中的项目数,使用第一个循环中的信息循环遍历这些列表值以执行一些计算,一旦所有值都有已读取该键中断回到第一个循环获取下一个键,依此类推。每个字典的键数总是相等的。 seconddict 的 v 长度会有所不同,例如第一次通过第二个 for 循环,counterlist[1] 值应该是 9,但如下面的结果所示,它只计算 4,这是第一个 for 中的值的数量环形。实际上,第二个 For 循环每次只计算 4,而不是 v 的真实长度值。如果我在第二个 for 循环中包含键,例如 for k,v 在 seconddict.items() 中,它确实计数正确,但是后来我遇到了问题,在每个进入第二个 for 循环时,它从第一个 k 开始,并在每次通过时复制我的所有结果。我可以就如何完成这项工作获得一些建议吗?
def opti(self, firstdict, seconddict):
self.firstdict=firstdict
self.seconddict=seconddict
for key, value in self.firstdict.items():
print('****NEW KEY AND DO OTHER STUFF****)
for v in self.seconddict[key]:
print(---INSDIE SECOND DICT---')
x=0
counterlist=[key, len(list(filter(None, v)))]
while x < couterlist[1]:
x+=1
print(x)
if x >= counterlist[1]:
if key in finaldict:
print('====SAVE HERE===')
else:
print('SOMETHING ELSE')
break
else:
continue
break
**CURRENT RESULTS:**
*********************NEW RUN*******************
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
**NEEDED RESULTS:**
*********************NEW RUN*******************
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 9
1
2
3
4
5
6
7
8
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 2
1
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 5
1
2
3
4
======SOMETHING ELSE======
*********NEW KEY*********** SIZE 4
RAW DICT SIZE 4
------INSIDE RAWDICT--------- COUNTERLIST SIZE 3
1
2
3
======SOMETHING ELSE======
【问题讨论】:
标签: list dictionary for-loop while-loop