产生一个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
  • 把整体转换为字符串放入列表中
posted on 2020-03-12 14:48  Lonelycity9898  阅读(184)  评论(0编辑  收藏  举报