在Python中是否可以迭代单个键值对以将值打印到列表中?

在Python中是否可以迭代单个键值对以将值打印到列表中?,python,list,dictionary,for-loop,key-value,Python,List,Dictionary,For Loop,Key Value,第一次在论坛上问问题,在寻找答案或线索时,我对我的特定问题没有运气。我是python的初学者,如果这意味着什么的话,那么任何帮助都是非常感谢的! 我只是想为我的TRPG写一个“战利品生成器”程序。 我已经弄清楚了我希望程序如何编译列表。 这个问题。。。每次它迭代项{}中的所有“数据”点时,它会打印两次项的“名称” def lootMechanics(ITEM): for data in ITEM: if ITEM['cost'] == 250:

第一次在论坛上问问题,在寻找答案或线索时,我对我的特定问题没有运气。我是python的初学者,如果这意味着什么的话,那么任何帮助都是非常感谢的! 我只是想为我的TRPG写一个“战利品生成器”程序。 我已经弄清楚了我希望程序如何编译列表。

这个问题。。。每次它迭代项{}中的所有“数据”点时,它会打印两次项的“名称”

def lootMechanics(ITEM):
    for data in ITEM:
        if ITEM['cost'] == 250:
            YELLOW.append(ITEM['name'])
            

#prints out to a list in a certain format with no brackets.
print(*YELLOW , sep = ' , ')
输出变为:

爆能枪,爆能枪 我只想让输出读取
爆能手枪

抱歉,由于声誉不够,我无法发表评论

问题在于,如果
ITEM
函数的
ITEM
参数是dict的列表,则输出不是异常

您的for循环在
lootMechanism(ITEM)
函数中有点问题。我认为应该是:

def lootMechanics(ITEM):
    for data in ITEM:
        if data['cost'] == 250:
            YELLOW.append(data['name'])
如果您的
项目
列表中确实包含多个符合
项目(项目)
功能中的
如果
条件的DICT,则您将获得多个相同的名称


如果您不希望出现这种行为,那么我建议您使用
set()
对象来存储项的
'name'
属性。

您能否准确地确定代码的哪一部分出现意外行为,以及您期望的输出是什么?我以前从未见过使用set()。我感谢你的帮助。我会调查的。我确实计划添加更多的数据,而不仅仅是“成本”。我试图让一个测试程序运行,以构建一个更大的。@MrSeekz集合对于存储唯一的数据集来说真的很棒。如果您确实计划存储其他信息,您可以只存储整个dict对象,而不仅仅是它的名称或其他属性
def lootMechanics(ITEM):
    for data in ITEM:
        if data['cost'] == 250:
            YELLOW.append(data['name'])