Python列表切片范围

2024-05-15 02:52:35 发布

您现在位置: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]

非常感谢你!在


Tags: or代码inforreturnrange学习者fizzbuzz
1条回答
网友
1楼 · 发布于 2024-05-15 02:52:35

:是范围符号,意思是给我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

相关问题 更多 >

    热门问题