【问题标题】:Python - String list checkPython - 字符串列表检查
【发布时间】:2021-11-22 06:55:09
【问题描述】:

我对 Python 还比较陌生,所以我在字符操作方面还是有点吃力。

我尝试了这段代码的许多变体:

print([for element in string if element[0] == '['])

"string" 是 [tag] 消息的列表,我考虑到 '\n' 将其拆分,因此我尝试对其进行格式化并合并同一消息的分离元素。现在我在做:

for count, element in enumerate(string):
        try:
            if element[0] != '[':
                string[count - 1] = string[count - 1] + ' ' + string[count]
                string.pop(count)
                count = count - 1

但它只对每条消息有效一次,所以我的目标是检查所有消息是否正确合并。

如果字符串列表中当前元素的第一个字符中有“[”,我的预期输出是True。所以我可以把它放在一个while循环中:

while([for element in string if element[0] == '[']):
   # do something

【问题讨论】:

  • string 包含什么?是否要检查所有元素是否存在“[”?
  • 在代码中添加string的定义
  • 完成,用定义编辑。

标签: python python-3.x list


【解决方案1】:

您正在返回一个包含理解列表的列表。也许这对您的情况会更好

def verify(s)
    for element in s:
        if element[0] == '[':
            return True
    return False

while(verify(s)):
    .....

【讨论】:

    【解决方案2】:

    使用any() 是一种简洁的方法。您还可以使用内置的startswith(),这有助于提高可读性:

    strings = ['hello', '[whoops]', 'test']
    any(s.startswith('[') for s in strings)
    # True
    
    strings = ['hello', 'okay', 'test']
    any(s.startswith('[') for s in strings)
    # False
    

    【讨论】:

    • 呵呵,这也很有用,这正是我尝试进行正确更改的方式。在我的代码示例中,我可以执行“any(element[0] == '[' for element in strings)”。谢谢你的贡献马克,谢谢。今天真的学到了一些新东西。
    猜你喜欢
    • 2016-06-16
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2018-06-03
    • 1970-01-01
    • 2011-08-31
    相关资源
    最近更新 更多