无括号的元组打印列表python

问题描述 投票:2回答:4

我有一个元组列表,我想打印此列表的拼合形式。我不想转换列表,只打印不带括号和括号的即可。

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)

我感兴趣的是,如果有人有一个更优雅,更有效的解决方案,可能不进行合并,而仅打印。预先感谢。

python list tuples
4个回答
6
投票
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))

2
投票

使用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方式。


1
投票

如果您绝对必须在没有join之类的列表变平操作的情况下执行此操作,那么这将起作用,但这很糟糕,您应该只使用join

[sys.stdout.write(str(i) + ' ' + str(j) + ' ') for (i, j) in input]

使用stdout.write,因为它不会像print那样自动添加换行符。


0
投票

这比您想像的要简单。

   a = [ ("a", 1), ("b",2), ("c", 3)]
    for i,j in a:
        print(i,j,end=' ')
© www.soinside.com 2019 - 2024. All rights reserved.