我想使用一个以元组作为参数的函数,但是我有一个元组列表,每当我尝试将元组列表提供给它返回的函数时
s = s.join(x)
TypeError: sequence item 0: expected str instance, tuple found
然而,只有一个元组本身没有它周围的列表,该函数将按预期工作。
有没有办法可以像这样提供一个元组列表:
[('abcd','1234','xyz'),('e.t.c', 'e.t.c', 'test')]
到一个单独使用单个元组的函数?谢谢:))
编辑 - 这是我将元组列表输入的函数:
def strFormat(x):
#Convert to string
s=' '
s = s.join(x)
print(s)
#Split string into different parts
payR, dep, sal, *other, surn = s.split()
other = " ".join(other)
#Print formatting!
print ("{:5}, {:5} {:>10} {:10} £{:10}".format(surn , other, payR, dep, sal))
将单个元组放入此函数时,它会按预期返回打印格式的字符串。将元组列表放入此函数时,它不起作用并返回错误。如何使它如上所述的元组列表将适用于上述函数?
答案 0 :(得分:0)
如果你想单独加入元组,你可以使用列表理解:
[delimiter.join(x) for x in list_of_tup] # delimiter should be a string
否则你需要解压缩元组然后加入它们。为此目的,您可以使用嵌套列表解析或itertools.chain
:
delimiter.join([item for tup in list_of_tup for item in tup])