Python列表切片范围

时间:2017-11-08 01:47:28

标签: python

我是一名新的Python学习者。我被以下一些代码拦截了:

return ['FizzBuzz'[i%-3&-4:i%-5&8^12]or`i`for i in range(1,n+1)]

特别是它的含义:[i%-3&-4:i%-5&8^12]

非常感谢你!

1 个答案:

答案 0 :(得分:2)

:是范围符号,意思是在list[start:end]中为我提供开始和结束之间的列表元素。

%是模运算符, &是二进制(按位)和运算符,因此第一部分:

i%-3&-4

等于mod(i, -3) & -4

^是独占或运算符,因此第二部分:

i%-5&8^12

等于mod(i, -5 ) & 8^12

模运算符从第一个参数除以第二个参数得到余数。

如果您需要了解有关python二进制(按位)运算符look here

的更多信息

如评论中所述,如果没有后向抽搐``,则or语句后面的最后一部分返回1 to n+1的范围,如果得到的拳头列表为空。

返回标记,在该语句中是repr()函数的Python2语法。 有关详细信息,请参阅repr documentation