【问题标题】:Using .append to iterate upon an expanding list of numbers in Python使用 .append 迭代 Python 中一个扩展的数字列表
【发布时间】:2020-01-28 16:31:57
【问题描述】:

这两种方法都返回 None 类型;它们的目的是附加一个新数字,该数字等于列表中最后一个整数的 1。双打印语句只是为了测试循环中代码的可行性。我做错了什么以至于没有得到想要的结果?

方法一:

number_list = [1,2,3,4,5,6,7,8]
number_list = number_list.append(number_list[-1]+1)
print(number_list)
print(number_list)

方法二:

number_list = [1,2,3,4,5,6,7,8]
number_list = number_list.append(number_list[0]+number_list[-1])
print(number_list)
print(number_list)

【问题讨论】:

  • list.append(x) 更新列表并且不返回任何内容。不要保存它的返回值,只打印 number_list

标签: python list append iteration


【解决方案1】:

你不需要 numberlist = numberlist.append(...)

只是

numberlist.append(..)

【讨论】:

  • 当我对此进行测试时,两个打印语句都返回相同的列表,而不是相互构建。这只是通过使用 for 循环解决了,还是有另一个问题阻止 .append 重复?
  • 因为你的打印语句都是事后的,在追加之前放置一个,你会看到它向列表中添加了一个新元素
【解决方案2】:

.append 返回none,这就是您将number_list 设置为的值。相反,使用该方法而不将其设置为number_list,它将正常工作。

>>> number_list = [1,2,3,4,5,6,7,8]
>>> number_list
[1, 2, 3, 4, 5, 6, 7, 8]
>>> number_list.append(number_list[-1]+1)
>>> number_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]

您可能已经注意到,仅修改列表的 insert、remove 或 sort 等方法没有打印返回值——它们返回默认值 None。 1 这是 Python 中所有可变数据结构的设计原则。 [source]

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多