Python 打印不带括号的元组列表

Python 打印不带括号的元组列表,python,list,tuples,Python,List,Tuples,我有一个元组列表,我想打印这个列表的扁平形式。我不想转换列表,只需打印它,不带括号和方括号 input: [ ("a", 1), ("b",2), ("c", 3)] output: a 1 b 2 c 3 我是这样做的: l = [ ("a", 1), ("b",2), ("c", 3)] f = lambda x: " ".join(map(str,x)) print " ".join(f(x) for x in l) 我感兴趣的是,是否有人有一个更优雅、可能更高效的解决方案,可能不

我有一个元组列表,我想打印这个列表的扁平形式。我不想转换列表,只需打印它,不带括号和方括号

input: [ ("a", 1), ("b",2), ("c", 3)]
output:   a 1 b 2 c 3
我是这样做的:

l = [ ("a", 1), ("b",2), ("c", 3)]
f = lambda x: " ".join(map(str,x))
print " ".join(f(x) for x in l)
我感兴趣的是,是否有人有一个更优雅、可能更高效的解决方案,可能不需要使用join,only print。提前感谢。

使用
str.join()
您可以使用嵌套列表:

>>> print ' '.join([str(i) if isinstance(i,int) else i for tup in A for i in tup])
a 1 b 2 c 3

如果没有
join()
,您仍然需要在项目上循环并连接它们,我认为
join()
对于这一目标来说更像是一种python方式。

如果您必须在没有像
join
这样的列表展平操作的情况下执行此操作,那么这将起作用,但是这很糟糕,你应该使用
加入

[sys.stdout.write(str(i) + ' ' + str(j) + ' ') for (i, j) in input]
使用
stdout.write
,因为它不会像
print
那样自动追加换行符

from __future__ import print_function 

l =  [("a", 1), ("b",2), ("c", 3)]

print(*(i for j in l for i in j))
a 1 b 2 c 3
或使用itertools.chain展平:

from itertools import chain

print(*chain(*l))

这比你想象的要简单

   a = [ ("a", 1), ("b",2), ("c", 3)]
    for i,j in a:
        print(i,j,end=' ')

不幸的是,OP正在寻找一个没有
join
的解决方案。好的解决方案。我编辑了我的问题:)我想尽量避免打印以外的操作。不过,这个解决方案很好。我也这么认为,但我还是想问问别人,看看别人的看法。@dogacanb Checkout Padraic的回答。。)join是以字符串形式输出列表的最简单方法是的,我不知道你能做到这一点。对Python3是的。对,对,对,我也是对Python3是的。