有没有办法在多行中的字符串中打印一些列。例如,假设我们有以下字符串:
EXAMPLE1
- -- ---
EXAMPLE2
我只打印列中有'-'
的列。所以这种情况的输出应该是:
EAMLE1
------
EAMLE2
我正在考虑拆分字符串并通过使用zip来遍历每一列,并打印那些具有'-'
的列但是不知道如何正确使用它。任何想法都会提前感谢
一旦我们将字符串拆分成行,我们就可以使用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