我的代码中有以下行,效果很好,但看起来很难看。
if not line.startswith("<ul>") and not line.startswith("<ol>") and not line.startswith("<li>"):
有没有更好的方法来写这条线?
由于
答案 0 :(得分:3)
使用正则表达式
import re
if not re.match("^<ol>|^<ul>|^<li>", line):
答案 1 :(得分:2)
您可以将any
与列表推导或生成器结合使用:
if not any(line.startswith(tag) for tag in ['<ul>', '<ol>', '<li>']):
答案 2 :(得分:0)
使用any()
如果iterable的任何元素为true,则返回True。如果iterable为空,则返回False。
if not any(line.startswith(x) for x in ["<ul>", "<ol>", "<li>"]):
答案 3 :(得分:0)
不用说,有多种方法可以做到这一点(就像编码中的任何东西一样)。但是,如果您打算以后再使用这些标签,另一种方法是创建一个包含这些标签的列表,然后在需要时引用该列表。 即
tags = ["<ul>", "<ol>", "<li>"]
#your code here
if line.startswith not in tags:
#your code here