打印没有括号的元组列表python

时间:2015-11-16 20:54:49

标签: 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)

我感兴趣的是,如果有人有一个更优雅,可能更有效的解决方案,可能没有连接,只打印。提前谢谢。

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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()更符合这个目标。{/ p>

答案 2 :(得分:1)

如果您必须在没有join等列表展平操作的情况下执行此操作,那么这将有效,但这很糟糕,您应该只使用join

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

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

答案 3 :(得分:0)

这比您想像的要简单。

<div class="row" *ngFor="let item of arr; let i = index ; trackBy:trackByFn">
      <div class="col-12">
        <input type="text" [(ngModel)]="arr[i]">
      </div>
    </div> 
相关问题