Skip to main content
 首页 » 编程设计

python之python 列表中每个元素的唯一索引值

2025年05月04日11thcjp

我试图仅将列表中的特定数字与偶数索引号相乘。 我的列表中有一些数字出现了多次。这些数字具有相同的索引值。但是,只有当它们出现在索引号为偶数的位置时,我才想将这些数字乘以 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))