获取字典的值作为值列表
Get the values of a dictionary as list of values
我正在尝试获取存储在字典中的值,但我做不到。
dict = {"user": {"tw_id": [["1080231111188251398"], ["1080111112808902656"], [], ["1080081111173306369"], [], ["1080491111114200192"]]}}
我尝试了 list(map(...)
,但我得到了一个字符列表。
请帮忙!
我想要这样的列表:
list = ["1080231111188251398","1080111112808902656","1080081111173306369","1080491111114200192"]
谢谢
您可以使用简单的列表推导来展平,它访问每个子数组的第一项(假设每个子数组只包含一项):
lst = [i[0] for i in dct["user"]["tw_id"] if i]
>>> dct = {"user": {"tw_id": [["1080231111188251398"], ["1080111112808902656"], [], ["1080081111173306369"], [], ["1080491111114200192"]]}}
>>> lst = [i[0] for i in dct["user"]["tw_id"] if i]
>>> lst
['1080231111188251398', '1080111112808902656', '1080081111173306369', '1080491111114200192']
>>>
此外,永远不要使用 dict
或 list
作为变量名,它会隐藏内置变量名。
参见How to make a flat list out of list of lists? 例如:
# Using simpler data for readability
d = {"user": {"tw_id": [["a"], ["b"], [], ["c"], [], ["d"]]}}
from itertools import chain
L = list(chain.from_iterable(d['user']['tw_id']))
print(L) # -> ['a', 'b', 'c', 'd']
顺便说一句,不要使用像 dict
和 list
这样的变量名,因为它们隐藏了内置类型 dict
和 list
.
可能是我误会了你,如果是这样的话请告诉我。
你有一个字典的字典,所以首先你需要获得第一级(users
)然后你将有一个字典,其中的值是一个列表。
> some = {"user": {"tw_id": [["1080231111188251398"], ["1080111112808902656"], [], ["1080081111173306369"], [], ["1080491111114200192"]]}}
> some["user"]
{'tw_id': [['1080231111188251398'], ['1080111112808902656'], [], ['1080081111173306369'], [], ['1080491111114200192']]}
> some["user"]["tw_id"]
[['1080231111188251398'], ['1080111112808902656'], [], ['1080081111173306369'], [], ['1080491111114200192']]
我正在尝试获取存储在字典中的值,但我做不到。
dict = {"user": {"tw_id": [["1080231111188251398"], ["1080111112808902656"], [], ["1080081111173306369"], [], ["1080491111114200192"]]}}
我尝试了 list(map(...)
,但我得到了一个字符列表。
请帮忙!
我想要这样的列表:
list = ["1080231111188251398","1080111112808902656","1080081111173306369","1080491111114200192"]
谢谢
您可以使用简单的列表推导来展平,它访问每个子数组的第一项(假设每个子数组只包含一项):
lst = [i[0] for i in dct["user"]["tw_id"] if i]
>>> dct = {"user": {"tw_id": [["1080231111188251398"], ["1080111112808902656"], [], ["1080081111173306369"], [], ["1080491111114200192"]]}}
>>> lst = [i[0] for i in dct["user"]["tw_id"] if i]
>>> lst
['1080231111188251398', '1080111112808902656', '1080081111173306369', '1080491111114200192']
>>>
此外,永远不要使用 dict
或 list
作为变量名,它会隐藏内置变量名。
参见How to make a flat list out of list of lists? 例如:
# Using simpler data for readability
d = {"user": {"tw_id": [["a"], ["b"], [], ["c"], [], ["d"]]}}
from itertools import chain
L = list(chain.from_iterable(d['user']['tw_id']))
print(L) # -> ['a', 'b', 'c', 'd']
顺便说一句,不要使用像 dict
和 list
这样的变量名,因为它们隐藏了内置类型 dict
和 list
.
可能是我误会了你,如果是这样的话请告诉我。
你有一个字典的字典,所以首先你需要获得第一级(users
)然后你将有一个字典,其中的值是一个列表。
> some = {"user": {"tw_id": [["1080231111188251398"], ["1080111112808902656"], [], ["1080081111173306369"], [], ["1080491111114200192"]]}}
> some["user"]
{'tw_id': [['1080231111188251398'], ['1080111112808902656'], [], ['1080081111173306369'], [], ['1080491111114200192']]}
> some["user"]["tw_id"]
[['1080231111188251398'], ['1080111112808902656'], [], ['1080081111173306369'], [], ['1080491111114200192']]