Python在list withloop中打印字典键(OrderedDict)

2024-05-17 02:54:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试图找出如何打印一个列表storeItems,它包含3OrderedDict(),并且能够为每个OrderedDict打印keyvalue。我不知道如何解决这个问题,这就是我所尝试的,它给了我一个TypeError: string indices must be integers

storeItems = [{}, {}, {}]
storeItems[0] = OrderedDict()
storeItems[1] = OrderedDict()
storeItems[2] = OrderedDict()

storeItems[0]['Name'] = 'Auto-Enter'
storeItems[0]['Price'] = 30
storeItems[0]['Max'] = 100

storeItems[1]['Name'] = 'Multiplier'
storeItems[1]['Price'] = 100
storeItems[1]['Max'] = 5

storeItems[2]['Name'] = 'Factory'
storeItems[2]['Price'] = 100
storeItems[2]['Max'] = 3

#the original layout of the storeItems

#storeItems = [{
#        "Name": "Auto-Enter",
#        "Price": 30,
#        "Max": 100
#    }, {
#        "Name": "Multiplier",
#        "Price": 100,
#        "Max": 5
#    }, {
#        "Name": "Factory",
#        "Price": 200,
#        "Max": 3
#    }]
i = 0
for value in storeItems:
    for key in value:
        for i in range(0, 2):
            print(storeItems[i][key], storeItems[i][key][value])

注意事项

我发现做for value in storeItems: print(value)会为每行打印OrderedDict([('Name': 'Auto-Enter', ...)])print(storeItems[0]['Name'])输出Auto-Enter。我似乎很难把这变成一个循环。

我希望这个尽可能接近原始格式storeItems


Tags: thekeynameinforautovaluefactory
1条回答
网友
1楼 · 发布于 2024-05-17 02:54:35

storeItems中的每个元素都是一个字典(OrderedDict只是一个跟踪插入顺序的子类),所以只需循环^{} method

for odict in storeItems:
    for key, value in odict.items():
        print(key, value)

相关问题 更多 >