如何将for循环的项返回到单个列表中?

时间:2015-09-02 18:35:59

标签: python list for-loop range

我不知道如何从列表中的范围获取for循环中的所有项目,而不是将它们全部分开。 让我们说我有这个代码

list1=[1,2,3,4,5]
new = []
for item in list1[0:-1]:
    new = item+1
    print(new)

所以,如果我运行这个,我会得到

2
3
4
5

但我需要得到这个:

[2,3,4,5]

这个问题的重点是在原始列表的每个数字上加1除了最后一个,然后用0替换第三个数字。但是如果我得到的数字不在列表中我不知道如何调用我会得到的第三个项目:

new[2]=0

3 个答案:

答案 0 :(得分:2)

您可以使用list.append()

list1 = [1,2,3,4,5]
list2 = []
for item in list1[0:-1]:
    list2.append(item + 1)

或者,你可以使用列表理解:

list2 = [item + 1 for item in list1[0:-1]]

答案 1 :(得分:2)

此处使用x代替x + 1列表中的每个项list1[:-1],但第三项除外,它将被替换为0.此外,我还会通过列表理解list1 = [1,2,3,4,5] new = [x + 1 if i != 2 else 0 for i,x in enumerate(list1[:-1])] # new == [2, 3, 0, 5] 省略最后一个元素,如OP已经做的那样:

ffmpeg -i input.jpg -vf scale="'if(gt(a,4/3),320,-1)':'if(gt(a,4/3),-1,240)'" output.png

答案 2 :(得分:1)

这应该有效

list1=[1,2,3,4,5]
print [x+1 if i != 2 else 0 for i, x in enumerate(list1)]
#[2,3,0,5,6]