如何解决如何计算嵌套元组列表中字符串的出现次数?
我在python中有一个嵌套的元组列表:
myList = [(12345,"John Doe"),(345678,'Marie Doe'),(434566,(665533,(23456,'John Doe'),(657332211,'Amanda Doe')]
并尝试将名称出现为两个单独的列表:
occurrences = [2,3,1]
names = ['John Doe','Marie Doe','Amanda Doe']
到目前为止,这给了我嵌套嵌套元组中的所有项目,但不确定如何产生以上内容:
Total = len(myList)
有人可以帮我吗?预先谢谢你!
解决方法
您可以做的是创建一个dict
,其中键是名称,值是它们在myList
中的计数。
myList = [(12345,"John Doe"),(345678,'Marie Doe'),(434566,(665533,(23456,'John Doe'),(657332211,'Amanda Doe')]
# Initializing a dict with key: name and value: 0.
dict_name_count = {name: 0 for _,name in myList}
# Iterating over tuples in `myList`,picking name (the second entry in tuple) ignoring the number.
for _,name in myList:
dict_name_count[name] += 1
print(dict_name_count)
# Results in: {'John Doe': 2,'Marie Doe': 3,'Amanda Doe': 1}
# To get separate lists:
names = list(dict_name_count.keys())
occurrences = list(dict_name_count.values())
,
这是我要用熊猫做的事情:
import pandas as pd
df = pd.DataFrame(myList).groupby(1,as_index=False).count()
occurrences = df[0].to_list()
names = df[1].to_list()
输出:
names : ['Amanda Doe','Joe Doe','John Doe','Marie Doe']
occurrences : [1,1,3]
,
您可以将名称解压缩到一个列表中,然后只运行该列表的计数:
all_names = [elem[1] for elem in myList]
names = []
occurrencs = []
for name in set(all_names):
names.append(name)
occurrences.append(all_names.count(name))
,
尝试
myList = [(12345,'Amanda Doe')
]
namelist=[name[1] for name in myList]
names=[]
for name in namelist:
if name not in names:
names.append(name)
occurrences=[namelist.count(name) for name in names]
print(occurrences)
print(names)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。