如何删除字典键并仅保留列表中的值?
How to remove the dictionary key and retain the values only in list?
我的变量中有一个字典列表,如下所示:
category = [ { "S" : "Restaurants" }, { "S" : "Drinks" }, { "S" : "Outdoor Seating" }]
我想删除键,它应该只给我值,输出应该如下所示:
[Restaurants,Drinks,Outdoor Seating]
注意:列表的长度每次都不同,假设上面的类别变量有 3 个键值对。下次它可能是 2 、 4 或其他一些数字,但它应该 return 只有值。如何做?
我建议使用列表理解来遍历列表并获取每个字典的所有值。
category = [ { "S" : "Restaurants" }, { "S" : "Drinks" }, { "S" : "Outdoor Seating" }]
new = [list(dicx.values())[0] for dicx in category]
输出
['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)
答案的本质是遍历列表,并为每个字典提取所需的值并将其粘贴到新列表中。
假设每个字典只有一个带有键 "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" }]
我想删除键,它应该只给我值,输出应该如下所示:
[Restaurants,Drinks,Outdoor Seating]
注意:列表的长度每次都不同,假设上面的类别变量有 3 个键值对。下次它可能是 2 、 4 或其他一些数字,但它应该 return 只有值。如何做?
我建议使用列表理解来遍历列表并获取每个字典的所有值。
category = [ { "S" : "Restaurants" }, { "S" : "Drinks" }, { "S" : "Outdoor Seating" }]
new = [list(dicx.values())[0] for dicx in category]
输出
['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)
答案的本质是遍历列表,并为每个字典提取所需的值并将其粘贴到新列表中。
假设每个字典只有一个带有键 "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)