我正在写一个函数,它接受一个列表作为参数。此参数是一个字符串列表,每个字符串包含用空格分隔的名字和姓氏。如果名字是重复的,我应该检查每个列表,如果是,创建一个包含重复名字的新列表。这个词只有在其子列表中重复时才算作重复。例如
>>>findAgents( [["John Knight", "John Doe", "Erik Peterson"],["Fred Douglas", "John Stephans", "Mike Dud", "Mike Samuels"]])
会屈服的
['John', 'Mike']
到目前为止,我已经能够遍历列表并访问名字。但我不知道如何组织他们,使他们保持在自己的领域,所以我可以检查是否有东西是重复的只是在该地区。这是我的密码:
def findAgents(listOlists):
newlist = []
x = 0
for alist in listOlists:
for name in alist:
space = name.find(" ")
firstname = (name[0:space])
print( firstname)
我重写了在扁平列表理解中使用
collections.Counter
,计算名字(使用str.partition
),并在出现超过1次时过滤名字:结果:
你可以试试这个:
现在,我们需要得到所有计数大于或等于2的名字。这可以通过字典上的单个迭代来完成:
列表
temp
将包含所需的结果。你知道吗我会使用regex并从每个列表中提取重复的名称:
示例:
相关问题 更多 >
编程相关推荐