在嵌套字符串列表中查找唯一元素

2024-04-20 08:42:53 发布

您现在位置:Python中文网/ 问答频道 /正文

与此URL上发布的查询类似:

https://stackoverflow.com/questions/54477996/finding-unique-elements-in-nested-list/, 

我还有一个问题。在

如果我有一个从Pandas导入的列表,我需要得到一个单独的列表作为输出,其中包含所有的独特元素

^{pr2}$

一旦我有了所有唯一的元素,我想检查整个列表中每个元素的计数。 有人能告诉我怎样才能做到这一点吗?在

mylist = df.Abv.str.split().tolist()
mylist
[[‘Ac,Cr,Dr’],
 [‘Ac,Ad,Sc'],
 [‘Ac,Bi,Dr’],
 [‘Ad,Dr,Sc'],
 [‘An,Dr,Fa’],
 [‘Bi,Co,Dr’],
 [‘Dr,Mu’],
 [‘Ac,Co,My’],
 [‘Co,Dr’],
 [‘Ac,Ad,Sc'],
 [‘An,Ac,Ad’],
]

我试过不同的方法,但似乎不能成功。在

尝试将其转换为字符串并对字符串应用拆分函数,但没有成功。在


Tags: 字符串httpscomanurl元素列表stackoverflow
3条回答

您可以创建一个字典,其中键作为列表值,值作为它们的计数

你的代码可能是这样的 . 在

mylists = [[‘Ac,Cr,Dr’],
 [‘Ac,Ad,Sc'],
 [‘Ac,Bi,Dr’],
 [‘Ad,Dr,Sc'],
 [‘An,Dr,Fa’],
 [‘Bi,Co,Dr’],
 [‘Dr,Mu’],
 [‘Ac,Co,My’],
 [‘Co,Dr’],
 [‘Ac,Ad,Sc'],
 [‘An,Ac,Ad’],
]
unique = {}

for mylist in mylists:
    for elem in mylist:
        unique[elem] = unique[elem]+1 if elem in unique else 1

在唯一.keys()将提供唯一的元素数组,如果需要任何值的计数,可以从字典中获取,例如unique['Ad']

可以使用^{}生成元素计数的字典。这还可以让您轻松访问所有唯一元素的列表。看起来您有一个列表列表,其中每个子列表包含一个字符串。在将它们添加到计数器之前,您需要split这些。在

from collections import Counter
count = Counter()
mylist = [['Ac,Cr,Dr'],
 ['Ac,Ad,Sc'],
 ['Ac,Bi,Dr'],
 ['Ad,Dr,Sc'],
 ['An,Dr,Fa'],
 ['Bi,Co,Dr'],
 ['Dr,Mu'],
 ['Ac,Co,My'],
 ['Co,Dr'],
 ['Ac,Ad,Sc'],
 ['An,Ac,Ad'],
]

for arr in mylist:
    count.update(arr[0].split(','))

print(count) # dictionary of symbols: counts
print(list(count.keys())) # list of all unique elements

你可以用Python3这样做

    mylist = [['Ac,Cr,Dr'],
    ['Ac,Ad,Sc'],
    ['Ac,Bi,Dr'],
    ['Ad,Dr,Sc'],
    ['An,Dr,Fa'],
    ['Bi,Co,Dr'],
    ['Dr,Mu'],
    ['Ac,Co,My'],
    ['Co,Dr'],
    ['Ac,Ad,Sc'],
    ['An,Ac,Ad'],
    ]

    uniquedict = {}

    for sublist in mylist:
        for item in sublist[0].split(','):
            if item in uniquedict.keys():
                uniquedict[item] += 1
            else:
                uniquedict[item] = 1

    print(uniquedict)
    print(list(uniquedict.keys()))

{'Ac':6,'Cr':1,'Dr':7,'Ad':4,'Sc':3,'Bi':2,'An':2,'Fa':1,'Co':3,'Mu':1,'My':1} ['Ac'、'Cr'、'Dr'、'Ad'、'Sc'、'Bi'、'An'、'Fa'、'Co'、'Mu'、'My']

相关问题 更多 >