我试图仅将列表中的特定数字与偶数索引号相乘。 我的列表中有一些数字出现了多次。这些数字具有相同的索引值。但是,只有当它们出现在索引号为偶数的位置时,我才想将这些数字乘以 2。
我搜索的所有论坛都与我的需求相反,他们希望重复出现的数字具有相同的索引号。 就我而言,我希望循环数字具有不同的索引值。
a = ['2', '0', '0', '1', '4', '5', '6', '4', '0', '4', '6']
my_list = []
for i in a:
if a.index(i) in [1,3,5,7,9]:
#get ascii value using ord()
a1 = (ord(i)) * 2
else:
a1 = ord(i)
my_list.append(a1)
预期 = [50, 96, 48, 98, 52, 106, 54, 106, 48, 104, 54]
得到 = [50, 52, 54, 52, 52, 54]
请您参考如下方法:
您应该使用enumerate 而不是index。此外,您可以将其设为列表推导式:
a = ['2', '0', '0', '1', '4', '5', '6', '4', '0', '4', '6']
result = [ord(c) * 2 if i % 2 == 1 else ord(c) for i, c in enumerate(a)]
print(result)
# [50, 96, 48, 98, 52, 106, 54, 104, 48, 104, 54]
等效循环:
result = []
for i, c in enumerate(a):
if i % 2 == 1:
result.append(ord(c) * 2)
else:
result.append(ord(c))
