2012-03-16 72 views
1

我想使用替代循環來計算一個字符串中的字符在另一個字符串中出現的次數。在兩個字符串中共同出現字符

例如如果string1 ='python'和string2 ='boa constrictor'那麼它應該計算爲6(2 t,3 o's,1 n)

有沒有人知道如何做到這一點?

+0

對不起,新來論壇...和Python。是的,這是一個家庭作業問題。 Moreso教導我自己如何通過做隨機問題來使用程序。 – bang 2012-03-16 06:09:12

回答

2

非常簡單:

count = 0 

for letter in set(string1): 
    count += string2.count(letter) 

print(count) 
+1

有一個錯誤。你應該使用set(string1)。 – wim 2012-03-16 05:52:56

+0

謝謝,我錯過了。 – Blender 2012-03-16 05:54:12

0

使用字典理解{ch:string2.count(ch) for ch in string1 if ch in string2}

我忘了你需要一個for循環,總結了所有的信件。

count = 0 
for ch in string1: 
    if ch in string2: 
     count += string2.count(ch) 
+0

然後總結這些值。 – wim 2012-03-16 05:51:06

0

這裏for循環是在發電機中表達隱式的。

sum(string2.count(c) for c in set(string1)) 
+0

看起來你可能已經交換了'string1'和'string2' – gfortune 2012-03-16 05:56:03

相關問題