繁体   English   中英

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM