2015-09-10 63 views
0

我想结合以下两个列表,但组合1a除外。python中既没有也没有声明

a=[1,2,3,4,5,6,7,8,9] 
b=['a', 'b', 'c','d', 'e','f','g'] 
c=[] 

for i in a: 
    for j in b: 
     if i is not 1 and j is not'a': 
      c.append(str(i) + j) 

print c 

这排除了1和'a'的所有组合。我怎样才能排除1a

+2

决不比较整数或'is'浮动。使用'=='和'!='。 –

+1

布尔代数101,德摩根定律。 – njzk2

回答

7

“i是1,j是'a'”的相反不是“我不是1,j不是'a'”。您还需要翻转二元运算符。有关更多信息,请参见De Morgan's laws

另外,当比较值时,应该使用等号运算符==而不是is

if i is not 1 and j is not'a': 

更改为:

if i != 1 or j != 'a': 
1

你想要的是

if not (i == 1 and j == 'a') 

,或者

if i != 1 or j != 'a' 
相关问题