仅使用列表的第N个元素执行操作

时间:2017-06-06 09:03:47

标签: python

我想在列表中只增加每秒的数字(0-100),但我无法让它工作。

5 个答案:

答案 0 :(得分:0)

  

我想改为列表如此:1,2,3,4,5,6,7,8变为1,4,3,8,5,16等。

虽然我不明白你如何乘以6以16结尾,但我认为这就是你所需要的:

new_list = []

for x in range(1,100):
  if x % 2 == 0: new_list.append(x*2)
  else: new_list.append(x)

print(new_list)

如果数字可以被2整除,则将其乘以2并将其附加到新列表中。如果没有,你只需在没有乘法的情况下追加它。

运行此程序,您将获得以下输出:

[1, 4, 3, 8, 5, 12, 7, 16, 9, 20, 11, 24, 13, 28, 15, 32, 17, 36, 19, 40, 21, 44, 23, 48, 25, 52, 27, 56, 29, 60, 31, 64, 33, 68, 35, 72, 37, 76, 39, 80, 41, 84, 43, 88, 45, 92, 47, 96, 49, 100, 51, 104, 53, 108, 55, 112, 57, 116, 59, 120, 61, 124, 63, 128, 65, 132, 67, 136, 69, 140, 71, 144, 73, 148, 75, 152, 77, 156, 79, 160, 81, 164, 83, 168, 85, 172, 87, 176, 89, 180, 91, 184, 93, 188, 95, 192, 97, 196, 99]

答案 1 :(得分:0)

你不能用0乘以,因为结果总是为0。

result=1
for i in range (1 , 10 ):
   if i%2==0:
     result*=i
print(result)     

答案 2 :(得分:0)

[x*10 for x in range(100) if x%2==0] # take vale to be multiply instead of 10, use x if you want to multiply with number it self

下面的代码只会乘以偶数元素并保持其他元素。

def iterate_lis(get_list):
    ls = []
    for x in get_list:
        if x%2==0:
            ls.append(x*2)
        else:
            ls.append(x)
    print(ls)
    return ls

iterate_count = 5  # list will be iterate 5 times

for i in range(iterate_count):
    if i ==0:
        get_lis = iterate_lis(range(100))
    else:
        get_lis = iterate_lis(get_lis)
<{1}}的

结果如下:

iterate_count=5

答案 3 :(得分:0)

UPDATE l
SET l.LicensePlate = null
FROM Car l
INNER JOIN (SELECT UserId, Max(Id) AS max_id
            FROM Car 
            GROUP BY UserId) m ON m.UserId = l.UserId
                                  AND m.max_id <> l.id 

这将为您提供列表中的每个第二个元素并将其全部加倍。

答案 4 :(得分:0)

使用range()生成要更改的条目的索引...

numbers = [1, 2, 3, 4, 5, 6, 7, 8]

for i in range(1, len(numbers), 2):
    numbers[i] *= 2

将导致包含列表的数字

[1, 4, 3, 8, 5, 12, 7, 16]