作为这个原始问题的后续内容: Python: Stripping elements of a string array based on first character of each element
我想知道我是否可以扩展这个if语句:
with open(bom_filename, 'r') as my_file:
file_array = [word.strip() for word in my_file if word.startswith("/")]
包含和第二个条件:
with open(bom_filename, 'r') as my_file:
file_array = [word.strip() for word in my_file if (word.startswith("/")) & not(word.endswith("/"))]
这会产生语法错误,但我希望我可以使用一些替代语法!
答案 0 :(得分:1)
with open(bom_filename, 'r') as my_file:
file_array = [word.strip() for word in my_file if (word.startswith("/") and not(word.strip().endswith("/")))]
您需要更改
if (word.startswith("/")) & not(word.endswith("/"))
到
if (word.startswith("/") and not(word.strip().endswith("/")))
或删除了额外的括号:(根据@ viraptor的建议)
if word.startswith("/") and not word.strip().endswith("/")
注意if(...)
,...
必须包含所有逻辑,而不仅仅是if(word.startswith("/"))
。并使用&
替换and
这是一个按位运算符。