在python中,如何从另一个字符串中检测字符串的重复元素?
那么,在python中,我将如何从另一个字符串中找到一个重复的字符串元素,在大部分情况下使用一到两行或快速修复 比如说,在python中,如何从另一个字符串中检测字符串的重复元素?,python,string,list,duplicates,detection,Python,String,List,Duplicates,Detection,那么,在python中,我将如何从另一个字符串中找到一个重复的字符串元素,在大部分情况下使用一到两行或快速修复 比如说, str1 = "abccde" str2 = "abcde" # gets me c 通过使用str2,发现str1中存在重复的元素,因此检测到str1中存在str2中元素的重复。不确定是否有办法通过.count来完成,比如str1.count(str2)之类的 我在我的刽子手任务中使用了这个上下文,我是一个初学者,所以我们主要使用内置函数和任务的基础知识,我的循环中有一段
str1 = "abccde"
str2 = "abcde"
# gets me c
通过使用str2,发现str1中存在重复的元素,因此检测到str1中存在str2中元素的重复。不确定是否有办法通过.count来完成,比如str1.count(str2)之类的
我在我的刽子手任务中使用了这个上下文,我是一个初学者,所以我们主要使用内置函数和任务的基础知识,我的循环中有一段代码会一直打印,因为它会对双字母进行编码
喂,研磨,调制
因此,我几乎创建了一个“已使用”字符串,我试图将其与我的正确字母列表进行比较,猜测是“附加”的,因此我可以避免这种情况
注意:它们将被输入,所以如果有意义的话,我不能说或只是硬编码字母c
谢谢大家! 再见
您基本上是在两个字符串之间搜索一个diff函数。适应
输出
abcccde => abcde
The second string is missing the "c" in position 3 of the first string
The second string is missing the "c" in position 4 of the first string
希望这对你有帮助,祝你度过愉快的一天,安东尼诺再见 您基本上是在两个字符串之间搜索一个diff函数。适应 输出
abcccde => abcde
The second string is missing the "c" in position 3 of the first string
The second string is missing the "c" in position 4 of the first string
希望这对你有帮助,祝你度过愉快的一天,安东尼诺使用
设置
和str.count
:
def find_dup(str1, str2):
return [i for i in set(str1) if str1.count(i) > 1 and i in set(str2)]
输出:
find_dup("abccde", "abcde")
# ['c']
find_dup("abcdeffghi" , "aaaaaabbbbbbcccccddeeeeefffffggghhiii") # from comment
# ['f']
使用
set
和str.count
:
def find_dup(str1, str2):
return [i for i in set(str1) if str1.count(i) > 1 and i in set(str2)]
输出:
find_dup("abccde", "abcde")
# ['c']
find_dup("abcdeffghi" , "aaaaaabbbbbbcccccddeeeeefffffggghhiii") # from comment
# ['f']
我的猜测是,可能您正在尝试编写一个类似于以下内容的方法:
def duplicate_string(str1: str, str2: str) -> str:
str2_set = set(str2)
if len(str2_set) != len(str2):
raise ValueError(f'{str2} has duplicate!')
output = ''
for char in str1:
if char in str2_set:
str2_set.remove(char)
else:
output += char
return output
str1 = "abccccde"
str2 = "abcde"
print(duplicate_string(str1, str2))
输出
在这里,如果str2本身有一个重复项,我们将首先引发一个错误。然后,我们将循环遍历
str1
,或者从str1\u集
中删除一个字符,或者将重复项追加到输出
字符串中 我的猜测是,可能您正在尝试编写一个类似于以下内容的方法:
def duplicate_string(str1: str, str2: str) -> str:
str2_set = set(str2)
if len(str2_set) != len(str2):
raise ValueError(f'{str2} has duplicate!')
output = ''
for char in str1:
if char in str2_set:
str2_set.remove(char)
else:
output += char
return output
str1 = "abccccde"
str2 = "abcde"
print(duplicate_string(str1, str2))
输出
在这里,如果str2本身有一个重复项,我们将首先引发一个错误。然后,我们将循环遍历
str1
,或者从str1\u集
中删除一个字符,或者将重复项追加到输出
字符串中如果<代码> STR2包含更多的DUP,如<代码> ABCCDCdE <代码>或字母不存在于<代码> STR1 > <代码> ABCDEZ ?也许您应该考虑一个列表或SET,而不是一个字符串来跟踪猜测。这将使你的任务更容易如果“abccde”中的“c”:print('detected“c)”)
@PartialOrder如果我只想在列表中执行,我该怎么做?@Chris detector几乎只关心str 1是否与str 2中的任何char元素有任何重复,因此str1=“abcdeffgi”str2=“aaaaaa bbbbbb ccc ddeeefffgghhii”和STR1将给我信,如果<代码> STR2包含更多的DUP,如<代码> ABCCDCdE <代码>或字母不存在于<代码> STR1 > <代码> ABCDEZ 。也许您应该考虑一个列表或SET,而不是一个字符串来跟踪猜测。这将使你的任务更容易<代码>如果“abccde”中的“c”:print('detected“c)”)
@PartialOrder如果我只想在列表中执行,我将如何执行它?@Chris detector只关心str 1是否与str 2中的任何char元素有任何重复项,因此str1=“abcdeffhi”str2=“aaaaaa bbbbbb ccc ddeeefffgfgghhii”
并且str1会给我定字母f