产生一个1到10的序列,其中能被3整除的位置替换成java,能被5整除的位置替换成python
首先给出代码,再对代码进行理解:
java, python = 'java', 'python' jl, pl = len(java), len(python) print([str(java[i%3*jl: ] + python[i%5*pl:] or i) for i in range(1, 10)])
输出结果为:
['1', '2', 'java', '4', 'python', 'java', '7', '8', 'java']
- 切片操作中i%3*jl和i%5*pl 只有在i能被3或者5整除的时候,字符串才非空,在i能被3整除时,字符串java完整输出,在i能被5整除时,字符串python完整输出
- or i 当i既不能被3整除也不能被5整除时,则or起作用,输出i
- 把整体转换为字符串放入列表中