python 如何查询字典中的列表中的元素/ 如何将嵌套列表的内部转化成独立的字符串
现有一个嵌套列表:
[['name', 'nationality', 'gender'], ['Mary', 'Britain', 'Female'], ['John', 'Norway', 'Male'], ['Murphy', 'Ireland', 'Female'], ['Sara', 'Norway', 'Female']],
通过zip分配可以得到以列表形式完成的字典:
{'name': ['Mary', 'John', 'Murphy', 'Sara'], 'nationality': ['Britain', 'Norway', 'Ireland', 'Norway'], 'gender': ['Female', 'Male', 'Female', 'Female']}
但目的是为了做inverted index,所以希望获得的结果是:
{'name': 'Mary, John, Murphy, Sara',
'nationality': 'Britain, Norway, Ireland, Norway',
'gender': 'Female, Male, Female, Female'}
请问该如何操作?
或者有什么办法可以直接查询列表形式字典中的元素吗?
你可以直接用
a=['name', 'nationality', 'gender']
print(','.join(a))
这种形式将列表转化为字符串的集合
对处理后的字典中的每个键做对应操作即可
有帮助望采纳~
示例转换代码如下:
input = {'name': ['Mary', 'John', 'Murphy', 'Sara'], 'nationality': [
'Britain', 'Norway', 'Ireland', 'Norway'], 'gender': ['Female', 'Male', 'Female', 'Female']}
for k, v in input.items():
input[k] = ",".join(v)
print(input)
子列表用",".join()拼接成字符串即可
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
# 通过zip分配可以得到以列表形式完成的字典:
dic = {'name': ['Mary', 'John', 'Murphy', 'Sara'], 'nationality': ['Britain', 'Norway', 'Ireland', 'Norway'], 'gender': ['Female', 'Male', 'Female', 'Female']}
for k,v in dic.items():
dic[k] = ",".join(v)
print(dic)
使用pandas读取成字典比用zip更便捷,然后键值进行字符拼接即可,参考代码如下:
lst = [['name', 'nationality', 'gender'], ['Mary', 'Britain', 'Female'], [
'John', 'Norway', 'Male'], ['Murphy', 'Ireland', 'Female'], ['Sara', 'Norway', 'Female']]
import pandas as pd
df=pd.DataFrame(lst[1:],columns=lst[0])
new={}
for k,v in df.to_dict('list').items():
new.update({k:",".join(v)})
print(new)
运行结果:
{'name': 'Mary,John,Murphy,Sara', 'nationality': 'Britain,Norway,Ireland,Norway', 'gender': 'Female,Male,Female,Female'}
如有帮助,请采纳。点击我回答右上角【采纳】按钮。