我有这个元组列表;
List = [('1', 'John', '129', '37'), ('2', 'Tom', '231', '23')]
我想在此列表中的每个元组的末尾添加一个字符串。它看起来像这样;
OutputList = [('1', 'John', '129', '37', 'TestStr'), ('2', 'Tom', '231', '23', 'TestStr')]
我尝试了OutputList = [xs + tuple('TestStr',) for xs in List ]
,但没有成功。解决这个问题的正确方法是什么?
我正在使用Python 2.7
答案 0 :(得分:5)
如果你想要一个1元素的元组,那就是('TestStr',)
,而不是tuple('TestStr',)
:
OutputList = [xs + ('TestStr',) for xs in List]
tuple('TestStr',)
与tuple('TestStr')
相同,因为在函数调用中会忽略尾随逗号。 tuple('TestStr')
将'TestStr'
视为可迭代,并构建包含字符串字符的元组。
答案 1 :(得分:3)
只需删除tuple
部分:
OutputList = [xs + ('TestStr',) for xs in List]
这里不需要tuple()
可调用,你没有将一种类型转换为元组,你需要的只是一个元组文字。
演示:
>>> List = [('1', 'John', '129', '37'), ('2', 'Tom', '231', '23')]
>>> [xs + ('TestStr',) for xs in List]
[('1', 'John', '129', '37', 'TestStr'), ('2', 'Tom', '231', '23', 'TestStr')]