【问题标题】:How to add elements of a list by element to a tuple? [duplicate]如何将列表的元素逐个元素添加到元组? [复制]
【发布时间】:2019-12-20 12:25:42
【问题描述】:

我正在尝试在 python 中获取一个列表并附加(在一个元组中)一些变量,并在元组中添加另一个列表中的每个项目,以便列表中的每个单独项目在元组中都有自己的位置.

基本上从另一个列表向元组添加更多元素。

我尝试在元组中运行一个 for 循环,但是这当然没有用。我见过有人做类似的事情,但不确定它实际上是如何工作的。

items = []
listy = []
var1, var2, var3 = 0, 1, 2
items.append((var1, var2, var3, for l in listy))

我只是得到一个无效的语法错误。同样,这只是我想要发生的事情的可视化。下面是另一个我看到的例子:

list[var1, var2, var3, listy[0], listy[1], listy[n]]

感谢您的意见。对不起,如果这是一个愚蠢的问题,我使用 python 的时间不长,但在网上找不到任何具体的东西。

【问题讨论】:

  • 这里有太多的术语混淆。看extend方法。

标签: python list loops for-loop tuples


【解决方案1】:

Python 中的元组是不可变的数据结构,因此不能添加。

您可以做的是创建一个列表,添加到该列表中,然后将其转换为一个元组。或者你可以连接两个元组。像这样:

result = (var1, var2, var3) + tuple(listy)

【讨论】:

  • 效果很好,非常感谢!很高兴它可以保留一行代码
【解决方案2】:

我很难理解您的问题,但我认为您正在寻找 listsextend 方法(元组是不可变的,您不能附加或扩展它们),也许使用 * 在其他可迭代对象中扩展可迭代对象。以下是一些示例:

items = []
var1, var2, var3 = 0, 1, 2
listy = [var1, var2, var3] 

items.extend((var1, var2, var3))  # Extend with a tuple
items.extend(listy)  # Extend with a list
items.extend((var1, var2, *(i*-1 for i in listy)))  # Usage of * to expand a tuple into a tuple

print(items)  # should print [0, 1, 2, 0, 1, 2, 0, 1, 0, -1, -2]

【讨论】:

  • 添加 * 对我有用。感谢您也对扩展方法发表评论,不知道这是一件事。
【解决方案3】:

在 python 3 中,您可以将 listy 解压缩到元组中:

items.append((var1, var2, var3, *listy))

在 python 2 中,您需要进行显式添加:

items.append((var1, var2, var3) + tuple(listy))

【讨论】:

  • 工作,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
相关资源
最近更新 更多