所以你首先zip
姓氏和名字,然后进行再str
与' '
作为分隔符。然后用collections.Counter
计算出多少次所谓的元音字符发生,sum
他们起来,并且加上len
这个全名。而这将是dict
的对象,那么你可以做任何你喜欢的事情。
from collections import Counter
a = ["John", "Kate", "Oli"]
b = ["Green", "Fletcher", "Nelson"]
vowel = ["a", "e", "i", "o", "u"]
output = {}
for item in [' '.join(i) for i in zip(a,b)]:
output[item] = sum(Counter(item)[x] for x in vowel) + len(item)
output
输出:
{'John Green': 13, 'Kate Fletcher': 17, 'Oli Nelson': 13}
UPDATE
如果你需要的名字和姓氏的所有可能的变化,你可以做到这一点与itertools.product
from itertools import product
from collections import Counter
a = ["John", "Kate", "Oli"]
b = ["Green", "Fletcher", "Nelson"]
vowel = ["a", "e", "i", "o", "u"]
output = {}
for item in [' '.join(i) for i in product(a,b)]:
output[item] = sum(Counter(item)[x] for x in vowel) + len(item)
output
输出:
{'John Fletcher': 16,
'John Green': 13,
'John Nelson': 14,
'Kate Fletcher': 17,
'Kate Green': 14,
'Kate Nelson': 15,
'Oli Fletcher': 15,
'Oli Green': 12,
'Oli Nelson': 13}
这里的输出是什么? –
@vishes_shell全名:约翰·格林得分:13 全名:约翰·弗莱彻得分:16 全名:约翰·尼尔森得分:14 全名:凯特·格林得分:14 全名:凯特·弗莱彻得分:17 全名:凯特尼尔森评分:15 全名:Oli Green评分:13 全名:Oli Fletcher评分:16 全名:Oli Nelson评分:14 –