我有一个名字列表:
names = ['ALICE', 'BOB', 'ME']
取'A'
为'B'
1、2、3 'C'
... 'ALICE' 的总和可以通过以下方式计算:
sum([ord(i) - ord('A') + 1 for i in 'ALICE']) // ALICE: 30, BOB: 19, ME: 18
现在,我想计算名称中的所有总和乘以 中的索引names
,例如 30 * 1 + 19 * 2 + 18 * 3 = 122。
这样做很容易:
s = 0
for i in range(len(names)):
s += sum(([ord(j) - ord('A') + 1) * (i + 1) for j in names[i]])
print s
但是我想学习以列表生成器样式(也许在一行中)来做到这一点。这个怎么做?