我写了一个比较2个字符串的函数脚本,并告诉我们是否有相同的元音(种类和数字).
例如:
sameVowels('aabcefiok','xcexvcxaioa') should return `true`
Run Code Online (Sandbox Code Playgroud)
并sameVowels('aabcefiok','xcexvcxaioia')应该返回false
这是我基于列表的尝试.它不能很好地工作,我不知道为什么; 在这个具体的例子中,它返回true两者.
def sameVowels(s1, s2):
L1=[]
L2=[]
L_vowles=['a','e','i', 'o','u','A','E','I','O', 'U'] #dont know how to use str.upper/lower on lists...
for i in s1:
if i in L_vowles:
L1.append(i)
for i in s2:
if i in L_vowles:
L2.append(i)
for i in L1:
L1.count(i)
for i in L2:
L2.count(i)
return L1.count(i)== L2.count(i)
Run Code Online (Sandbox Code Playgroud)
如你所见,我创建了一些愚蠢的列表--L_vowels ......
我想过使用,sets但我认为它不会有用,因为我不能用它进行任何计数.
我的尝试怎么了?
dictionary?谢谢!
只需使用生成器表达式并排序:
def vowels(x):
return (i for i in x if i.lower() in "aeiou")
def same_vowels(a, b):
return sorted(vowels(a)) == sorted(vowels(b))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |