我从包含其他几个词组的dict中获取某些值时遇到问题。它看起来像这样:
dictionary = {
'1532': {'text': 'Hello World, nice day huh?',
'user': 'some_name',
'word_list': ['Hello', 'World', 'nice', 'day', 'huh']},
'4952': {'text': "It's a beautiful day",
'user': 'some_name',
'word_list': ["It's", 'a', 'beautiful', 'day']},
'7125': {'text': 'I have a problem',
'user': 'some_name',
'word_list': ['I', 'have', 'a', 'problem']}}
我想要做的是迭代字典,每次迭代只检索' word_list'的值。
答案 0 :(得分:1)
这是一个非常基本的方法:
for x in dictionary.values():
print x["word_list"]
答案 1 :(得分:0)
只需迭代dictionary
的值然后:
for sub in dictionary.values():
print(sub['word_list'])
如果这是Python 2,请考虑使用dictionary.itervalues()
,这样就不会为循环构建新的列表对象。
这会产生:
>>> for sub in dictionary.values():
... print(sub['word_list'])
...
["It's", 'a', 'beautiful', 'day']
['I', 'have', 'a', 'problem']
['Hello', 'World', 'nice', 'day', 'huh']
你当然可以嵌套循环;你可以进一步循环单词列表:
for sub in dictionary.values():
for word in sub['word_list']:
print(word)
答案 2 :(得分:0)
使用pandas
的替代方法:
import pandas as pd
pd.DataFrame.from_dict(dictionary, orient='index').word_list.tolist()
Out[407]:
[['Hello', 'World', 'nice', 'day', 'huh'],
["It's", 'a', 'beautiful', 'day'],
['I', 'have', 'a', 'problem']]
如果您想将单词放在一个列表中:
from itertools import chain
import pandas as pd
list(chain(*pd.DataFrame.from_dict(dictionary, orient='index').word_list))
Out[410]:
['Hello',
'World',
'nice',
'day',
'huh',
"It's",
'a',
'beautiful',
'day',
'I',
'have',
'a',
'problem']