首页 > 解决方案 > 如何遍历字符串并找到重复的值

问题描述

我的问题是,我似乎无法找到正确的方法来遍历 subject2 并挑选出重复的字符串。下面是我的方法:

nosubjects = []
subjects2 = ["hi","hi","bi","ki","si","bi","li"]
for i in subjects2:
  if subjects2.count(i)==2:
    nosubjects.extend(i)
    print(nosubjects)

但是当我打印出来时,它看起来像这样:

['hi','hi']
['h', 'i', 'h', 'i','b', 'i']
['hi', 'i', 'h', 'i', 'b', 'i', 'b', 'i']

请帮忙谢谢!

标签: pythonarrays

解决方案


用于collections.Counter获取每个元素的计数并仅取那些计数超过 1 的元素:

from collections import Counter

subjects2 = ['hi', 'hi', 'bi', 'ki', 'si', 'bi', 'li']
nosubjects = [x for x, i in Counter(subjects2).items() if i > 1]

print(nosubjects)
# ['hi', 'bi']

推荐阅读