0
我有名字的列表:的Python有兩個相關變量循環
names = ['ALICE', 'BOB', 'ME']
以'A'
爲1,'B'
爲2,'C'
爲3 ...「愛麗絲」的總和可以用下式計算:
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
但我想學習在列表生成器樣式(也許在一行中)做到這一點。這個怎麼做?
第一個例子是不好的,你使用'i'兩次。 – glglgl
@glglgl,我修好了。感謝您指出它。 – falsetru