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

标签 python string startswith

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

for line in x:
    header = line.startswith('?')
if line.startswith() != header:
        DO SOME STUFF HERE

我意识到 startswith 方法需要一个参数,但是有没有简单的解决方案可以从不以问号开头的行中获取所有行?提前感谢您的帮助。

最佳答案

使用生成器表达式,这是我认为的最佳方式。

for line in (line for line in x if not line.startswith('?')):
    DO_STUFF

或者你的方式:

for line in x:
    if line.startswith("?"):
        continue
    DO_STUFF

或者:

for line in x:
    if not line.startswith("?"):
        DO_STUFF

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

关于python - 获取所有不以字符开头的字符串的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763414/

相关文章:

java - 如何从java中的字符串中提取子字符串

java - 为什么字符串在 Java 中以 ""开头?

entity-framework - Entity Framework : StartsWith to SQL

python - 无法在 Spark 中导入名称 LDA MLlib

python - 显示django-tables2中多对多的相关记录

python - 关于opencv-python模块的两个问题(例如,cv2.imshow)

Python:如何将输出捕获到文本文件? (现在只捕获了 530 行中的 25 行)

java - 将字符串乘以 double

java - 如何用星号替换文本中的特定单词“*"equal to the word' s 长度?

python - 基于字符串标准选择数据python