【问题标题】:Print some columns in multiline string在多行字符串中打印一些列
【发布时间】:2018-03-01 23:01:38
【问题描述】:

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

EXAMPLE1
- -- ---
EXAMPLE2

我只打印列中有'-' 的列。所以这个案例的输出应该是:

EAMLE1
------
EAMLE2

我正在考虑拆分字符串并使用 zip 遍历每一列,并仅打印具有 '-' 的列,但真的不知道如何正确使用它。 任何想法都会受到欢迎 提前致谢

【问题讨论】:

    标签: string python-3.x multiple-columns


    【解决方案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
    

    【讨论】:

    • 在这里非常优雅地使用zip
    猜你喜欢
    • 2021-07-12
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多