Python: Munging data with '.join' (TypeError: sequence item 0: expected string, tuple found)

Python: Munging data with '.join' (TypeError: sequence item 0: expected string, tuple found)

我有以下格式的数据:

[('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

关于如何转换整个列表的任何建议?

谢谢!

.join 需要一个字符串序列,但您给它的是一个元组序列。

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

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

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

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

a = [('A', 'B', 'C'),  ('B', 'C', 'A'),  ('C', 'B', 'B')]
print ["".join(line) for line in a]
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]))

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