【问题标题】:Print all substrings, no matter how many there are. Python打印所有子字符串,不管有多少。 Python
【发布时间】:2020-09-03 08:42:55
【问题描述】:

所以我有这段代码,我在其中创建一个带有子字符串的列表:

string = "|01|12345|TEXT1|TEXT2|"

x = string.count("|")

if string.count('|') == 3:

    subst = string.strip('|').split('|')

    print(substr)

else:

    substr = string.strip('|').split('|')

    print(substr)

结果:

['01', '12345', 'TEXT1', 'TEXT2']

但是,我想打印所有子字符串,结果是这样的:

[LAS|01|G12345|TEXT1|TEXT2|]

我知道我能做到:

print("[LAS|" + substr[0] + "|G" + substr[1] + "|" + substr[2] + "|" + substr[3])

但是这是硬编码的,如果我得到的字符串变成了更多的子字符串怎么办?我不想使用分配的 if 语句,如果 ('|') == 4、== 5、== 6 等的计数。

我如何确保我打印的内容包含所有子字符串。并且在每个子字符串之间都有一个管道符号 (|)。

谢谢,

【问题讨论】:

  • 这是什么<CR>,它来自哪里?
  • Deadshot,真的没什么。不必对这个问题做任何事情。但我理解这种困惑。我编辑了它的问题。

标签: python list printing


【解决方案1】:
print("[LAS|%s|]" % "|".join(substr))

"|".join(substr)substr 中的所有部分用| 分隔符连接起来。

如果您需要额外的“G”,则需要分别处理前一个或两个元素:

print("[LAS|%s|G%s|]" % (substr[0], "|".join(substr[1:]))

print("[LAS|%s|G%s|%s|]" % (substr[0], substr[1], "|".join(substr[2:]))

【讨论】:

    【解决方案2】:
    string = '|01|12345|TEXT1|TEXT2|'
    
    substr = string.strip('|').split('|')
    
    if len(substr) != 3:  # If you already have used split better to check the length than counting
        substr.insert(0, '[LAS')
        substr[2] = 'G' + substr[2]
        substr.append("]")
    
    print("|".join(substr))  # [LAS|01|G12345|TEXT1|TEXT2|]
    

    【讨论】:

      猜你喜欢
      • 2020-12-22
      • 2017-03-30
      • 2015-08-24
      • 1970-01-01
      • 2019-05-04
      • 2020-03-29
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      相关资源
      最近更新 更多