【问题标题】:How to pass a range as a list element to a list in python?如何将范围作为列表元素传递给python中的列表?
【发布时间】:2026-02-18 22:35:01
【问题描述】:

我想将一系列数字传递给列表。 这里我设置了包含索引号列表的变量 rowsList。

rowsList = [range(13),17,23]
for index in rowsList:
    ws.insert_rows(index,1)

显然它会引发:TypeError: 'range' 对象不能被解释为整数。我可以做些什么改变来完成这项工作? 感谢您的帮助。

【问题讨论】:

  • 您的问题不清楚。你能告诉我们你期望发生什么吗? ws 是什么?
  • 你对rowsList有什么期待?
  • 查看Appending a range to a list的答案。
  • @brunns 我的问题已解决,但您知道,ws 是我给工作表起的名称(Openpyxl 库,请参阅标签)。我没有发现相关的提及它:-)
  • 您应该注意,插入行的顺序很重要,因为每次插入都会移动下面的所有行。就目前而言,插入 range(13) 毫无意义。

标签: python list range openpyxl


【解决方案1】:

*(扩展可迭代解包)运算符

提议对可迭代的解包语法进行更改,允许指定一个“包罗万象”的名称,该名称将被分配一个包含所有不包含的项目的列表 分配给“常规”名称。

rowsList = [*range(13),17,23]
print (rowsList)

输出:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 23]

【讨论】:

    【解决方案2】:

    假设你想要[17, 23, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

    rowsList = [17, 23]
    rowsList.extend(range(13))
    

    假设你想要[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 23]

    rowsList = [17, 23]
    tmpList = []
    tmpList.extend(range(13))
    rowsList[:0] = tmpList
    

    【讨论】:

      最近更新 更多