如何给元组添加值?

我正在编写一个脚本,其中有一个元组列表('1','2','3','4') 。 例如:

 list = [('1','2','3','4'), ('2','3','4','5'), ('3','4','5','6'), ('4','5','6','7')] 

现在我需要在每个元组的末尾分别添加'1234''2345''3456''4567' 。 例如:

 list = [('1','2','3','4','1234'), ('2','3','4','5','2345'), ('3','4','5','6','3456'), ('4','5','6','7','4567')] 

有可能吗?

元组是不可变的,不应该被改变 – 这是列表types的用途。 你可以用originalTuple + (newElement,)replace每个元组,从而创build一个新的元组。 例如:

 t = (1,2,3) t = t + (1,) print t (1,2,3,1) 

但我宁愿build议从头开始列表,因为他们插入项目更快。

另一个提示:不要覆盖程序中内置的名称list ,而是调用variablesl或其他名称。 如果覆盖内置名称,则不能在当前范围内使用它。

基于语法,我猜这是Python。 元组的一点是它是不可变的,所以你需要用一个新的元组replace每个元素:

 list = [l + (''.join(l),) for l in list] # output: [('1', '2', '3', '4', '1234'), ('2', '3', '4', '5', '2345'), ('3', '4', '5', '6', '3456'), ('4', '5', '6', '7', '4567')] 

在Python中,你不能。 元组是不可变的。

在包含列表中,您可以用不同的('1', '2', '3', '4', '1234')replace元组('1', '2', '3', '4') ('1', '2', '3', '4', '1234')元组虽然。

正如其他人所回答的,Python中的元组是不可变的,“修改”元组的唯一方法是创build一个包含附加元素的新元组。

但最好的解决scheme是一个列表。 当需要调用元组的任何函数或方法需要调用时,使用元组(列表)创build一个元组。

  list_of_tuples = [('1', '2', '3', '4'), ('2', '3', '4', '5'), ('3', '4', '5', '6'), ('4', '5', '6', '7')] def mod_tuples(list_of_tuples): for i in range(0, len(list_of_tuples)): addition = '' for x in list_of_tuples[i]: addition = addition + x list_of_tuples[i] = list_of_tuples[i] + (addition,) return list_of_tuples # check: print mod_tuples(list_of_tuples) 

我正在浏览与tuplelist相关的一些细节,我所理解的是:

  • 元组是Heterogeneous集合数据types
  • 元组有固定长度(每个元组types)
  • 元组总是有限的

因此,为了将新项目附加到元组上,需要将其转换为list ,并对其执行append()操作,然后再将其转换回元组。

但是,我个人对这个问题的看法是,如果元组应该是有限的固定长度的项目,并且如果我们在应用程序逻辑中使用这些数据types,则不应该有一个scheme来添加新项目或更新项目值它。 所以,而不是元组列表,它应该是列表本身的列表 ,我对吗?