有条件地分配值(具有多个条件)

时间:2013-05-14 13:37:07

标签: python

作为这个原始问题的后续内容: 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("/"))]

这会产生语法错误,但我希望我可以使用一些替代语法!

1 个答案:

答案 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这是一个按位运算符。