繁体   English   中英

如何删除字典键并仅保留列表中的值?

[英]How to remove the dictionary key and retain the values only in list?

我的变量中有一个字典列表,如下所示:

category = [ { "S" : "Restaurants" }, { "S" : "Drinks" }, { "S" : "Outdoor Seating" }]

我想删除键,它应该只给我值,output 应该如下所示:

[Restaurants,Drinks,Outdoor Seating]    

注意:列表的长度每次都在变化,假设上面的类别变量有 3 个键值对。 下一次可能是 2、4 或其他数字,但它应该只返回值。怎么做?

答案的本质是遍历列表,并为每个字典提取所需的值并将其粘贴到新列表中。

假设每个字典只有一个带有键"S"的条目,如您的示例所示,您可以在一行中完成:

l = [d["S"] for d in category]

在更一般的情况下,如果我们不假设每个字典中的条目数,单行解决方案只会变得稍微笨拙一些

l = [value for d in category for value in d.values()]

就个人而言,我发现多线解决方案更容易遵循:

l = []
for d in category:
    for value in d.values():
        l.append(value)

我建议使用列表推导来遍历列表并获取每个字典的所有值。

category = [ { "S" : "Restaurants" }, { "S" : "Drinks" }, { "S" : "Outdoor Seating" }]
new = [list(dicx.values())[0] for dicx in category]

output

['Restaurants', 'Drinks', 'Outdoor Seating']

试试这个

category = [ { "S" : "Restaurants" }, { "S" : "Drinks" }, { "S" : "Outdoor Seating" }]
for data,cat in enumerate(category):
    for value,key in cat.items():
        category[data]=key
print(category)

暂无
暂无

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

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