python找出字符串的重复两次的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python找出字符串的重复两次的字符相关的知识,希望对你有一定的参考价值。

参考技术A a=int(input('请输入'))
list=[]
sum=[]
for i in range(a):
b=input('请输入数据')
list.append(b)
for i in range(a): #这个是为了循环多次,保证count<2的数值全部取出来,因为在
for i in list:
if list.count(i)<2: #举个例子:1,3,3,4,5则在这里得出的list为3,3,5,因为 count<2的
list.remove(i) #数有1,4,5,remove()删除的是该条件下的第一个符合该条件 的 值,所以5
else: #删除不了,所以要循环多次
pass
for i in list:
sum.append(i)
for i in sum:
for j in sum:
if i==j:
sum.remove(i)
else:
print('没有重复的值')
print(sum)
运行结果为
请输入5
请输入数据1
请输入数据3
请输入数据3
请输入数据5
请输入数据2
['3']
这你看一下,如果有看不懂的我再跟你说一下,关键是思路

带字符串的正则表达式:出现两次的字母对[关闭]

【中文标题】带字符串的正则表达式:出现两次的字母对[关闭]【英文标题】:Regex with strings: pairs of letters that occur twice [closed] 【发布时间】:2016-03-27 02:49:21 【问题描述】:

如何在 Python 中使用正则表达式找到在字符串中出现两次的字母对?

我想遍历一个字符串列表,找到具有重复字母对的字符串,并将它们放入一个列表中。字母不必相同,只需重复,尽管字母可以相同。

例如: xxhgfhdeifhjfrikfoixx - 这个有两次xx 所以我想保留这个字符串 kwofhdbugktrkdidhdnbk - 这个也可以保留,因为 hd 重复了

我得到的最好的结果是找到这些对:([a-z][a-z])\1|([a-z])\2

我需要找出哪些字符串有重复的对。

【问题讨论】:

使标题更能描述您的问题。并且正则表达式总是适用于字符串。 也许,(\w2).*?\1 这很接近,据我所知。但我的意思是任何至少出现两次的对。所以 hb 或 aa,任何东西,只要这对重复。我应该更清楚这一点。 好的,更新问题以添加更多详细信息、输入字符串、预期输出和您的尝试 什么口味的正则表达式?什么语言?你试过什么? 【参考方案1】:

正则表达式

(\w2).*?(\1)

https://regex101.com/r/yB3nX6/1

可视化

代码

遍历所有匹配项

for match in re.finditer(r"(\w2).*?(\1)", subject, re.IGNORECASE):
    # match start: match.start()
    # match end (exclusive): match.end()
    # matched text: match.group()

获取字符串中所有正则表达式匹配的数组

result = re.findall(r"(\w2).*?(\1)", subject, re.IGNORECASE)

人类可读

# (\w2).*?(\1)
# 
# Options: Case insensitive; Exact spacing; Dot doesn’t match line breaks; ^$ don’t match at line breaks; Regex syntax only
# 
# Match the regex below and capture its match into backreference number 1 «(\w2)»
#    Match a single character that is a “word character” (Unicode; any letter or ideograph, any number, underscore) «\w2»
#       Exactly 2 times «2»
# Match any single character that is NOT a line break character (line feed) «.*?»
#    Between zero and unlimited times, as few times as possible, expanding as needed (lazy) «*?»
# Match the regex below and capture its match into backreference number 2 «(\1)»
#    Match the same text that was most recently matched by capturing group number 1 (case insensitive; fail if the group did not participate in the match so far) «\1»

注意事项

如果您想明确只接受a-z 字符,可以将\w 切换为[a-z]

【讨论】:

以上是关于python找出字符串的重复两次的字符的主要内容,如果未能解决你的问题,请参考以下文章

字符流中第一个不重复的字符(python)

54.字符流中第一个不重复的字符(python)

JAVA 编程,输入一串字符,找出出现最多的字符

LeetCode 2351. 第一个出现两次的字母

LeetCode 2351. 第一个出现两次的字母

python去除出现一次的字符串