我有一个名字列表:
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
但是我想学习以列表生成器样式(也许在一行中)来做到这一点。这个怎么做?