如何在python中访问列表中的词典中的项?

如何在python中访问列表中的词典中的项?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我在数据框中有一列,每一行都是一个列表,它是许多具有相同键的字典的集合。我想从字典中的同一个键中获取所有项 我有以下清单: s=[{'category':'Public', “姓名”:“报纸”, “person”:“A”}, {'category':'Music', “姓名”:“安德烈”, “person”:“B”}, {'category':'Music', “姓名”:“印第安人”, “person”:“A”}, {'category':'Artist', '姓名':'日河', “person

我在数据框中有一列,每一行都是一个列表,它是许多具有相同键的字典的集合。我想从字典中的同一个键中获取所有项

我有以下清单:

s=[{'category':'Public',
“姓名”:“报纸”,
“person”:“A”},
{'category':'Music',
“姓名”:“安德烈”,
“person”:“B”},
{'category':'Music',
“姓名”:“印第安人”,
“person”:“A”},
{'category':'Artist',
'姓名':'日河',
“person”:“D},
{'category':'Interest',
“名称”:“运动”,
‘person’:‘B’}]
我尝试过使用循环和itemgetter,但由于数据量大,这需要很多时间。我正在寻找一种更有效的方法

从操作员导入itemgetter
类别=[]
name_page=[]
getter\u category=itemgetter('category')
getter\u name=itemgetter('name')
对于s中的元素:
name\u page.append(getter\u name(元素))
category.append(getter_类别(元素))
我想要更高效的东西,比如:

s['category']=['Public','Music','Music','Artist','Interest']
s['name']=['paper'、'Andre'、'Indian'、'Rihe'、'Sport']
s['person']=['A','B','A','D','B']

使用
defaultdict
from
collections

from collections import defaultdict
o = defaultdict(list)
for ss in s:
    for k, v in ss.items():
        o[k] += [v]

print(dict(o))
Out[7]:
{'category': ['Public', 'Music', 'Music', 'Artist', 'Interest'],
 'name': ['Newspaper', 'Andre', 'Indian', 'Rihe', 'Sport'],
 'person': ['A', 'B', 'A', 'D', 'B']}

我不想用字典。我找到了最简单的方法,就是使用数据帧

s = pd.DataFrame(s)

-------------------------
|category  | name  | person|
-------------------------
|Public    | Music | Music |
---------------------------
|Newspaper | Andre | Indian|
----------------------------

s['category'].to_list()    =    ['Public','Music','Music','Artist','Interest']