在使用元组的函数上使用元组列表

时间:2016-07-28 13:20:27

标签: python

我想使用一个以元组作为参数的函数,但是我有一个元组列表,每当我尝试将元组列表提供给它返回的函数时

 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))

将单个元组放入此函数时,它会按预期返回打印格式的字符串。将元组列表放入此函数时,它不起作用并返回错误。如何使它如上所述的元组列表将适用于上述函数?

1 个答案:

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