Python:Munging数据与' .join' (TypeError:序列项0:期望的字符串,找到元组)

时间:2015-01-25 12:33:45

标签: python string tuples

我有以下格式的数据:

[('A', 'B', 'C'),
 ('B', 'C', 'A'),
 ('C', 'B', 'B')]

我希望得到这个:

ABC
BCA
CBB

我当时能够转换一个元组:

>> "".join(data[0])
.. 'ABC'

然而,当我试图转换整个列表时,Python给了我一个错误:

>> "".join(data[:])
.. TypeError: sequence item 0: expected string, tuple found

有关我如何能够转换整个列表的任何建议吗?

谢谢!

3 个答案:

答案 0 :(得分:10)

.join需要一系列字符串,但是你给它一系列元组。

要获得您发布的结果,您需要加入每个元组中的每个元素,然后将每个元组连接在一起:

print('\n'.join(''.join(elems) for elems in data))

这是有效的,因为.join将接受生成器表达式,允许您迭代data(您的元组列表)。

因此我们有两个连接:内连接构建三个字母的字符串(例如,'ABC'),外连接在它们之间放置换行符('\n')。

答案 1 :(得分:1)

lst=[('A', 'B', 'C'),
 ('B', 'C', 'A'),
 ('C', 'B', 'B')]

for x in lst:
    print ("".join(x))

输出是;

>>> 
ABC
BCA
CBB
>>> 

一衬垫;

print ("\n".join(["".join(x) for x in lst]))

您必须先到达列表中的每个元素。

答案 2 :(得分:0)

a = [('A', 'B', 'C'),  ('B', 'C', 'A'),  ('C', 'B', 'B')]
print ["".join(line) for line in a]