Python-查找在string1和string2中找到的字符数
我试图在第一个字符串中找到第二个字符串中的字符数。这就是我到目前为止所做的:Python-查找在string1和string2中找到的字符数,python,Python,我试图在第一个字符串中找到第二个字符串中的字符数。这就是我到目前为止所做的: def main(): text1 = raw_input("Enter word 1: ") text2 = raw_input("Enter word 2: ") print("The number of characters that occur in both", text1, "and", text2, "is", count) def count(text1, text2):
def main():
text1 = raw_input("Enter word 1: ")
text2 = raw_input("Enter word 2: ")
print("The number of characters that occur in both", text1, "and", text2, "is", count)
def count(text1, text2):
char = 0
for i in text1:
for j in text2:
if i == j:
char += 1
return char
main()
我在def count()上遇到问题。我不知道如何计算text1和text2中出现了多少不会重复的字母。感谢您的帮助 这将是使用
集合的绝佳时机,它可以自动消除重复项并允许即时查找
def count(text1, text2):
numchars = 0
text1 = set(list(text1))
text2 = set(list(text2))
for char in text1:
if char in text2:
numchars += 1
return numchars
通过将字符串转换为列表,然后再转换为集合,可以消除每个字符串中的所有重复字符(不过,只有在函数中,字符串才可以)。然后,您可以检查第一组中的每个字符,看看它是否在第二组中,这是一个固定时间检查
另一个注意事项:如果您不想将大写A
和小写A
作为两个不同的字符计算,请使用text1=set(list(text1.lower())
此外,您没有正确调用该函数。您应该使用count(text1,text2)
而不仅仅是count
。虽然如果要打印出来,您需要使用str(count(text1,text2))
,因为count()
函数返回一个整数,您不能仅仅将其与字符串连接起来。这将是使用集的绝佳时机,它可以自动消除重复项并允许即时查找
def count(text1, text2):
numchars = 0
text1 = set(list(text1))
text2 = set(list(text2))
for char in text1:
if char in text2:
numchars += 1
return numchars
通过将字符串转换为列表,然后再转换为集合,可以消除每个字符串中的所有重复字符(不过,只有在函数中,字符串才可以)。然后,您可以检查第一组中的每个字符,看看它是否在第二组中,这是一个固定时间检查
另一个注意事项:如果您不想将大写A
和小写A
作为两个不同的字符计算,请使用text1=set(list(text1.lower())
此外,您没有正确调用该函数。您应该使用count(text1,text2)
而不仅仅是count
。虽然如果要打印出来,您需要使用str(count(text1,text2))
,因为count()函数返回一个整数,您不能将其与字符串连接起来。使用:
交集()将接受任何iterable作为参数
如果您想要副本:
def count(text1, text2):
s = set(text2)
return len([x for x in text1 if x in s])
In [29]: count("foo","foobar")
Out[29]: 3
In [30]: count("bana","banana")
Out[30]: 4
使用:
交集()将接受任何iterable作为参数
如果您想要副本:
def count(text1, text2):
s = set(text2)
return len([x for x in text1 if x in s])
In [29]: count("foo","foobar")
Out[29]: 3
In [30]: count("bana","banana")
Out[30]: 4
您可以通过交叉字符串(获取两个字符串中的唯一字符)并获取结果的长度来实现这一点。大概是这样的:
def strIntersection(s1, s2):
out = ""
for c in s1:
if c in s2 and not c in out:
out += c
return out
>>> strIntersection('asdfasdfasfd' , 'qazwsxedc')
'asd'
及
可能是你的计数函数
(另外,您需要调用count(text1、text2),而不仅仅是print语句中的conut,否则它将不会调用函数)您可以通过交叉字符串(获取两个字符串中的唯一字符)并计算结果的长度来完成此操作。大概是这样的:
def strIntersection(s1, s2):
out = ""
for c in s1:
if c in s2 and not c in out:
out += c
return out
>>> strIntersection('asdfasdfasfd' , 'qazwsxedc')
'asd'
及
可能是你的计数函数
(另外,您需要调用count(text1、text2),而不仅仅是在print语句中调用conut,否则它不会调用函数)主要问题是,您没有调用count
函数,而是打印count
函数对象。应该是的
print("The number of....", text2, "is", count(text1, text2))
此外,如果在第二个字符串中找到字母,则需要递增计数器,然后可以跳到第一个字符串中的下一个字符。所以,你可以像这样打破循环
for i in text1:
for j in text2:
if i == j:
char += 1
break
for i in text1:
if i in text2:
char += 1
由于在 TeX2 中只考虑了第一次出现的<代码> i <代码>,我们可以检查它是否存在于<代码>文本2< /代码>中,如
for i in text1:
for j in text2:
if i == j:
char += 1
break
for i in text1:
if i in text2:
char += 1
但请记住,它不会考虑原始字符串中的重复。例如,
aaa
和a
将导致count3
主要问题是,您没有调用count
函数,而是打印count
函数对象。应该是的
print("The number of....", text2, "is", count(text1, text2))
此外,如果在第二个字符串中找到字母,则需要递增计数器,然后可以跳到第一个字符串中的下一个字符。所以,你可以像这样打破循环
for i in text1:
for j in text2:
if i == j:
char += 1
break
for i in text1:
if i in text2:
char += 1
由于在 TeX2 中只考虑了第一次出现的<代码> i <代码>,我们可以检查它是否存在于<代码>文本2< /代码>中,如
for i in text1:
for j in text2:
if i == j:
char += 1
break
for i in text1:
if i in text2:
char += 1
但请记住,它不会考虑原始字符串中的重复。例如,
aaa
和a
将导致计数3
我不确定这是否是您要查找的,但如果您需要将text1和text2中的字母总数相加,并打印结果,这非常容易。请参阅下文:
text1 = raw_input("Enter word 1: ")
text2 = raw_input("Enter word 2: ")
x = len(text1) + len(text2)
print "The number of characters that occur in both text1 and text2 is " + str(x)
我不确定这是否是您正在寻找的,但如果您需要将text1和text2中的字母总数相加,然后打印结果,这非常容易做到。请参阅下文:
text1 = raw_input("Enter word 1: ")
text2 = raw_input("Enter word 2: ")
x = len(text1) + len(text2)
print "The number of characters that occur in both text1 and text2 is " + str(x)
那么你想找到出现在这两种语言中的唯一字符的数量,没有重复?那么你想找到出现在这两种语言中的唯一字符的数量,没有重复?我得到了这个错误:(“出现在这两种语言中的字符的数量”,“安娜”,“和”,“香蕉”,“是”,)@annabananana7哇,我重载了其中一个变量。您还需要使用count()
而不是count
。我现在遇到一个类型错误:TypeError:无法连接'str'和'int'objects@annabananana7啊,是的,那会发生的count()
返回一个int
,您需要将其转换为字符串。使用str(count(text1,text2))
调用函数。实际上,有人使用了我的代码并添加了一个break
,这使它工作起来很简单,我无法理解。谢谢你的帮助!我得到了这个错误:('anna','and','banana','is',中出现的字符数)@annabananana7哎呀,我重载了其中一个变量。您还需要使用count()
而不是count
。我不是