循环字典时将值存储在列表中

时间:2019-02-22 02:28:03

标签: python

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

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 ....]

但是由于索引格式用尽,我不想在此循环之外创建另一个列表理解。

1 个答案:

答案 0 :(得分:1)

您的问题有点令人困惑。最后的代码会有所帮助。从该代码来看,似乎您只想要这样:

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

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 ...

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