Python 查找字符串中第一个重复的字母及其重复次数

Python 查找字符串中第一个重复的字母及其重复次数,python,string,Python,String,我有下面的字符串:“WPCOPEO”,我需要找到第一个重复的字母及其重复的次数。我希望能在编码方面得到一些帮助 string = "WPCOPEO" def is_repeated(letter): for letter in String: if letter == letter print (letter) 如果你仔细想想,这很容易 检查集合中是否存在元素,否则插入集合 >>> s=set() >>> fo

我有下面的字符串:“WPCOPEO”,我需要找到第一个重复的字母及其重复的次数。我希望能在编码方面得到一些帮助

string = "WPCOPEO"
def is_repeated(letter):
    for letter in String:
        if letter == letter
            print (letter)

如果你仔细想想,这很容易

检查集合中是否存在元素,否则插入集合

>>> s=set()
>>> for i in string:
...     if i in s:
...             c=i
...             break
...     else:
...             s.add(i)
... 
>>> c
'P'
>>> string.count(c)
2
下面给出了使用列表理解获得它的一种方法: 使用for循环:
您可以通过首先存储每个字母的初始外观及其频率来查找外观

{'O': [3, 2], 'E': [4, 1], 'P': [1, 2], 'W': [0, 1], 'C': [2, 1]}
[[0, 'W', 1], [1, 'P', 2], [2, 'C', 1], [3, 'O', 2], [4, 'E', 1]]
接下来,您可以将其转换为(外观、字母频率)列表

然后,您可以按频率和外观进行排序,并抓取第一项

[[1, 'P', 2], [3, 'O', 2], [0, 'W', 1], [2, 'C', 1], [4, 'E', 1]]

实例 输出:

字母p出现两次


欢迎来到这里。这是家庭作业吗?你对这个问题有什么想法?如果你能在代码中添加一些解释就好了。而且,它似乎无法解决OP问题。
[[0, 'W', 1], [1, 'P', 2], [2, 'C', 1], [3, 'O', 2], [4, 'E', 1]]
[[1, 'P', 2], [3, 'O', 2], [0, 'W', 1], [2, 'C', 1], [4, 'E', 1]]
#! /usr/bin/env python3

def letter_frequency_by_initial_pos(word):
  occurs = {}
  first_appearance = 0
  for letter in word:
    if letter in occurs:
      occurs[letter][1] += 1
    else:
      occurs[letter] = [ first_appearance, 1 ]
      first_appearance += 1  
  return occurs

def appearance_to_frequency(occurs):
  freq_by_appearance = [None] * len(occurs)
  for letter in occurs:
    freq_by_appearance[occurs[letter][0]] = [ occurs[letter][0], letter, occurs[letter][1] ]
  return sorted(freq_by_appearance, key = lambda x: (-x[2], x[0], x[1]))

if __name__ == '__main__':
  freq = appearance_to_frequency(letter_frequency_by_initial_pos('WPCOPEO'))
  print('The letter {} appears {} times.'.format(freq[0][1], freq[0][2]))
def is_repeated(string):
    for i in range(1,len(string)):
        check=string[0]
        if check == string[i]:
            print("This character is frequent:",string[i])

string = "WPCOPEO"
is_repeated(string)