给定一个字符串S,我们将它的权重定义为元音在字符串中位置的乘积(从1开始)。例:重量(“e”)=1体重(“年龄”)=3;重量(“pippo”)=10
我试过这个:
def weight(s):
vowels = ['a','e','i','o','u']
numbers = []
for c in s:
if c in vowels:
n = s.index(c)+1
numbers.append(n)
result = 1
for x in numbers:
result = result*x
print(result)
但它只适用于不同的元音。如果字符串中有相同的元音,则数字是错误的。 我错过了什么
谢谢大家
您可以使用以下选项:
也许这不是一个最佳的方法,但这是有效的
最后一个IF语句消除了字符串包含0个元音的一个例外情况
str.index()
的工作原理与str.find
类似,因为:仅返回第一个事件索引
functools.reduce和operator.mul以及enumerate (from 1)使其成为一行:
或者对于所有字符串:
输出:
相关问题 更多 >
编程相关推荐