【发布时间】:2017-04-07 14:21:03
【问题描述】:
我知道这个主题已经被触及过几次,但我检查的所有主题都没有问到我要问的问题(我想)。下面的声明有什么问题?
from string import ascii_letters, digits as letters, digits
combinations = [letter1 + letter2 + digit1 + digit2 for digit1 in digits if (digit1 % 2 == 0) for digit2 in digits if (digit2 % 2 == 0) for letter1 in letters if (letter1 != 'a') for letter2 in letters if (letter2 != 'A')]
print combinations[:500]
我不断得到:
TypeError: not all arguments converted during string formatting
很高兴知道我做错了什么,因为我可以发誓我在这里遵循正确的语法......
【问题讨论】:
-
你的理解不可读,为什么不使用常规的 for 循环
-
您的
import将'0123456789'分配给letters和digits -
使用
range()获取您想要的数字并使用itertools.product组合它们
标签: python list-comprehension multiple-conditions