【问题标题】:How to return items of for loop into a single list?如何将 for 循环的项目返回到单个列表中?
【发布时间】:2015-09-02 18:35:58
【问题描述】:

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

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

所以如果我运行它,我会得到 ​​p>

2
3
4
5

但我需要得到这个:

[2,3,4,5]

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

new[2]=0

【问题讨论】:

  • new.append(item+1)

标签: python list for-loop range


【解决方案1】:

你可以使用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]]

【讨论】:

    【解决方案2】:

    这是一个用x + 1 替换列表中每个项目x 的单行符,第三个除外,它将被替换为0。此外,我将list1[:-1] 传递给列表理解以省略最后一个元素,就像 OP 已经做的那样:

    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]
    

    【讨论】:

      【解决方案3】:

      这应该可以工作

      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]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-20
        • 2020-03-12
        • 2023-01-07
        • 1970-01-01
        • 2021-03-27
        • 2020-07-30
        • 1970-01-01
        • 2021-12-17
        相关资源
        最近更新 更多