if和或带有字符串的语句

时间:2014-12-12 17:41:41

标签: python string if-statement

我有这些变量,a,b,c和d。它们是长度为75的值列表,但有些值是字符串' n / a'。为了使用这些值进行任何计算,我需要过滤掉'不适用。

这是我的代码:

for i in range(len(a)):
    if str(a)!='n/a' & str(b)!='n/a' & str(c)!='n/a' & str(d)!='n/a': #problem area
        a*b/c*d #some function here.

我收到错误:

TypeError: unsupported operand type(s) for &: 'str' and 'str'

有什么想法吗?

5 个答案:

答案 0 :(得分:4)

&是一个按位运算符,只能用于整数。请尝试使用and

答案 1 :(得分:0)

将这些&替换为and或使用大括号作为运算符优先级:

if (str(a)!='n/a') & (str(b)!='n/a') & (str(c)!='n/a') & (str(d)!='n/a'): 

答案 2 :(得分:0)

尝试用if 'n/a' not in map(str, [a,b,c,d]):

替换您的情况

答案 3 :(得分:0)

for w, x, y, z in zip(a, b, c, d):
    try:
        result = w * x / y * z
        # now do something with result
    except TypeError:
        pass

答案 4 :(得分:0)

仍然有点可读的单行:

a,b,c,d = zip(*[row for row in zip(a,b,c,d) if "n/a" not in row])