首页 > 解决方案 > 循环字典时将值存储在列表中

问题描述

我希望将值存储在列表中。让我的代码解释一下:

s = []
for i, x in enumerate(:something:):
    if ......:
        s.append()
    store = []
    elif x["some"] == :againsomething:
        store.append(x["value"]) // here it will store the output one by one. 

这里我的输出是:

["Man"]
["Eater"]

我在“已存储”列表中的预期商店:

["Man", "Eater"]

两者都是字符串并存储在单独的列表中,但我希望它以 [“Man”,“Eater”] 的形式存储。我知道我可以将它存储在列表“s”中。但是,由于某些原因,我仍然有我需要编写的函数和规则,所以我不能将它存储在这个列表“s”中。有没有办法根据我在列表“store”而不是列表“s”中的预期输出附加它?

更新:我也知道我们可以这样做:

s = []
for i, x in enumerate(:something:):
    if ......:
        s.append()
store = [x["value"] for i,x in enumerate(:something:) if ....]

但是我不想在这个循环之外创建另一个列表理解,因为索引格式跑掉了。

标签: python

解决方案


你的问题有点令人困惑。最后一点代码有帮助。从该代码中,您似乎只想要这个:

好的,回复您的评论,这是一种仍然存储在列表中的方法,但保留索引值和主值。您现在只有一个“元组”(就像一个列表一样)将两者保持在一起。

s = []
store = []
for i, x in enumerate(:something:):
    if ......:
        s.append()
    if x["some"] == :againsomething:
        store.append((i, x["value"])) 

这将让您再次进行迭代,但只是在“商店”中的内容上,如下所示:

for i, valueofx in store:
   ... use i and valueofx ...

到目前为止,我认为没有理由使用地图


推荐阅读