获取不以字符开头的所有字符串的最简单方法是什么?

drb*_*sen 20 python string startswith

我试图从文本文件中解析大约2000万行,并且正在寻找一种方法来对不以问号开头的行进行进一步的操作.我想要一个不使用正则表达式匹配的解决方案.我想做的是这样的事情:

for line in x:
    header = line.startswith('?')
if line.startswith() != header:
        DO SOME STUFF HERE
Run Code Online (Sandbox Code Playgroud)

我意识到这个startswith方法有一个参数,但有没有任何简单的解决方案可以从不以问号开头的行中获取所有行?在此先感谢您的帮助.

utd*_*mir 38

使用生成器表达式,这是我认为最好的方法.

for line in (line for line in x if not line.startswith('?')):
    DO_STUFF
Run Code Online (Sandbox Code Playgroud)

或者你的方式:

for line in x:
    if line.startswith("?"):
        continue
    DO_STUFF
Run Code Online (Sandbox Code Playgroud)

要么:

for line in x:
    if not line.startswith("?"):
        DO_STUFF
Run Code Online (Sandbox Code Playgroud)

这完全取决于您的编程风格.我更喜欢第一个,但也许第二个似乎更简单.但是由于很多缩进,我真的不喜欢第三个.


Wal*_*yKu 5

这是一个很好的单行代码,非常接近自然语言。

字符串定义:

StringList = [ '__one', '__two', 'three', 'four' ]
Run Code Online (Sandbox Code Playgroud)

执行契约的代码:

BetterStringList = [ p for p in StringList if not(p.startswith('__'))]
Run Code Online (Sandbox Code Playgroud)