将字符串添加到元组列表中每个元组的末尾

时间:2014-03-01 12:00:10

标签: python python-2.7

我有这个元组列表;

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

2 个答案:

答案 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')]