繁体   English   中英

编辑字典列表中的值 Python

[英]Editing Values in the List of Dictionaries in Python

我在 python 中有一个词典列表。该词典包含我需要为所有词典更新的“sequenceId”,以确保每个 sequenceId 是偶数且不可重复的。 为了更新 sequenceIds,我使用了 for 循环,但行为不是我所期望的。

seqId = 0
for index in range(20):
    FinalNodes[index]['sequenceId'] = seqId
    seqId +=2

print(FinalNodes[7]['sequenceId'])

预期 Output:- 14

观察到 Output:- 38

这是完整的代码片段

import json
import time

with open('test.json', "r") as json_file:
    data = json.load(json_file)

numberofJobs = 10

NodesList = data['nodes']
nNodes = len(NodesList)
#Divide all node into first, main and last
MainNodes = NodesList[1:nNodes-1]
FirstNode = NodesList[0:1]
LastNode  = NodesList[nNodes-1:nNodes] 

#prepare final nodes
FinalNodes = FirstNode.copy()
for i in range(numberofJobs):
    FinalNodes.extend(MainNodes)
FinalNodes.extend(LastNode)

print(FinalNodes[7]['sequenceId'])

seqId = 0
for index in range(0,20):
    FinalNodes[index]['sequenceId'] = seqId
    seqId +=2
    print(FinalNodes[index]['sequenceId'],index)


print(FinalNodes[7]['sequenceId'])

Output 循环内:-

0 0
2 1
4 2
6 3
8 4
10 5
12 6
14 7
16 8
18 9
20 10
22 11
24 12
26 13
28 14
30 15
32 16
34 17
36 18
38 19

请检查你的FinalNodes字典,因为我运行了相同的代码并且它工作正常!

FinalNodes= []
for i in range(20):
    FinalNodes.append({"sequenceId":0})
seqId = 0
for index in range(8):
    FinalNodes[index]['sequenceId'] = seqId
    seqId +=2

print(FinalNodes[7]['sequenceId']) #14

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM