我有一个元组列表,我想打印此列表的扁平形式。我不想转换列表,只需打印它而不带括号和括号。
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)
我感兴趣的是,如果有人有一个更优雅,可能更有效的解决方案,可能没有连接,只打印。提前谢谢。
答案 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>