有没有办法在多行中的字符串中打印一些列。例如,假设我们有以下字符串:
EXAMPLE1
- -- ---
EXAMPLE2
我只打印列中有'-'
的列。所以这种情况的输出应该是:
EAMLE1
------
EAMLE2
我正在考虑拆分字符串并通过使用zip来遍历每一列,并打印那些'-'
但不真正知道如何正确使用它的列。
任何想法都会受到欢迎
提前谢谢
答案 0 :(得分:1)
我们将字符串拆分为行后,我们可以使用zip(*lines)
转置列表,获取列,搜索-
的列,然后再转置以获取新行。然后我们可以使用str.join
来汇总结果。
s = '''\
EXAMPLE1
- -- ---
EXAMPLE2'''
columns = (tup for tup in zip(*s.split('\n')) if any('-' in x for x in tup))
lines = (''.join(line) for line in zip(*columns))
print('\n'.join(lines))
输出:
EAMLE1
------
EAMLE2