并非在字符串格式化python期间转换所有参数

时间:2015-09-17 11:05:47

标签: python python-3.x xor

我正在编写一个脚本,打印出可被3 XOR分割的列表项最后一个字符== 4但是我得到一个错误说明:TypeError: not all arguments converted during string formatting我是Python新手,可能错过了一些明显的东西。代码如下:

lijst = ["124576", "795834", "890432", "907251"]    
for j in lijst:
if j[-1]==4 ^ j%3 > 0  :
    print(j)

1 个答案:

答案 0 :(得分:3)

首先,您需要将4更改为'4',因为您的项目是字符串并将j转换为j%3中的int也需要括号表示您的比较表达式因为^的{​​{3}}高于==,如果你想保留你的结果,它也会引发TypeError,你可以使用列表理解:

>>> [j for j in lijst if (j[-1]=='4') ^ (int(j)%3 > 0)]
['124576', '795834', '890432']

如果您只想打印结果,可以使用带打印功能的常规循环。