[英]Understanding default arguments in range and list slicing in Python
[英]Python list slicing range
我是一名新的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]
非常感谢!
:
是范围符号,意思是给我list[start:end]
start和end之间的列表元素。
%
是模运算符, &
是二进制(按位)和运算符,因此第一部分:
i%-3&-4
等于mod(i, -3) & -4
^
是互斥或运算符,因此第二部分:
i%-5&8^12
等于mod(i, -5 ) & 8^12
模运算符从第一个参数除以第二个参数得到余数。
如果您需要进一步了解python二进制(按位)运算符,请查看此处
如评论中所述,不带反斜线``,如果结果拳头列表为空,则or语句之后的最后一部分返回1 to n+1
的范围。
该语句中的反勾号是repr()函数的Python2语法。 有关更多信息,请参见repr文档 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.