在多行字符串中打印一些列

问题描述 投票:1回答:1

有没有办法在多行中的字符串中打印一些列。例如,假设我们有以下字符串:

EXAMPLE1
- -- ---
EXAMPLE2

我只打印列中有'-'的列。所以这种情况的输出应该是:

EAMLE1
------
EAMLE2

我正在考虑拆分字符串并通过使用zip来遍历每一列,并打印那些具有'-'的列但是不知道如何正确使用它。任何想法都会提前感谢

string python-3.x multiple-columns
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.