如何给元组添加值?
我正在编写一个脚本,其中有一个元组列表('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)
我正在浏览与tuple
和list
相关的一些细节,我所理解的是:
- 元组是
Heterogeneous
集合数据types - 元组有固定长度(每个元组types)
- 元组总是有限的
因此,为了将新项目附加到元组上,需要将其转换为list
,并对其执行append()
操作,然后再将其转换回元组。
但是,我个人对这个问题的看法是,如果元组应该是有限的 , 固定长度的项目,并且如果我们在应用程序逻辑中使用这些数据types,则不应该有一个scheme来添加新项目或更新项目值它。 所以,而不是元组列表,它应该是列表本身的列表 ,我对吗?