【问题标题】:Fixed size list in Python not giving desired output [duplicate]Python中的固定大小列表未提供所需的输出[重复]
【发布时间】:2017-06-02 06:45:16
【问题描述】:

我正在尝试在 Python 中声明一个动态列表并对其进行各种操作,但在操作之后它没有提供所需的输出。

当我将列表声明为像arr =list() 这样的一般长度时,它可以正常工作:

arr = list()
arr.insert(0,5)
arr.insert(1,10)
arr.insert(0,6)
print(arr)
arr.remove(6)
arr.append(9)
arr.append(1)
arr.sort()
print(arr)
arr.pop()
arr.reverse()
print(arr)

这给了我预期的结果:

[6, 5, 10]
[1, 5, 9, 10]
[9, 5, 1]

但是当我尝试将大小传递给列表时,它没有给出预期的行为:

arr = [10]
arr.insert(0,5)
arr.insert(1,10)
arr.insert(0,6)
print(arr)
arr.remove(6)
arr.append(9)
arr.append(1)
arr.sort()
print(arr)
arr.pop()
arr.reverse()
print(arr)

这是给我的:

[6, 5, 10, 10]
[1, 5, 9, 10, 10]
[10, 9, 5, 1]

我不明白为什么会这样。

【问题讨论】:

  • 我想你的意思是“传递一个大小”到列表是 arr=[10] 在这里,这是错误的。这只是初始化一个由一个元素组成的列表,即 10。另外,您希望输出是什么?
  • 你没有传递大小 10,10 是列表 arr 的一个元素。
  • @LukasR 那我应该通过什么??

标签: python


【解决方案1】:

arr = [10] 不会创建一个长度为十个元素的列表;它会创建一个包含 1 个元素的列表,其值为 10。如果要创建一个长度为 10 个元素的列表,可以执行 arr = [0 for _ in range(10)] 之类的操作。

【讨论】:

  • arr = [0]*10 也将完成这项工作
  • @Izaak Weiss 给出 [6, 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 9, 10] [9, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  • @Mandrek 你期望得到什么?
  • @VMRuiz 我期待这个 [6, 5, 10] [1, 5, 9, 10] [9, 5, 1]
猜你喜欢
  • 2013-01-15
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2022-01-24
  • 2016-09-19
  • 2014-01-20
  • 2019-11-12
  • 1970-01-01
相关资源
最近更新 更多