python按顺序读取list_在Python中按列表顺序选择n个项目

说我有一长串:

>>> import string

>>> my_list = list(string.ascii_lowercase)

>>> my_list

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

我想遍历此列表,并按顺序重复选择n个项目.例如.如果我要选择5个项目,则应为:

step 1: ['a', 'b', 'c', 'd', 'e']

step 2: ['f', 'g', 'h', 'i', 'j']

step 3: ['k', 'l', 'm', 'n', 'o']

step 4: ['p', 'q', 'r', 's', 't']

step 5: ['u', 'v', 'w', 'x', 'y']

step 6: ['z', 'a', 'b', 'c', 'd']

step 7: ['e', 'f', 'g', 'h', 'i']

......

因此,重点是:我想确保当我到达列表的最后一项时,可以将第一项追加到最后一项,并且循环将继续进行.

为了将第一个项目附加到最后一个项目,我尝试了以下方法:

def loop_slicing(lst_, i):

""" Slice iterable repeatedly """

if i[0] > i[1]:

return [n for n in lst_[i[0]:]+lst_[:i[1]]]

else:

return lst_[i[0]:i[1]]

当我调用此函数时,可以执行以下操作:

>>> loop_slicing(my_list, (0, 5))

['a', 'b', 'c', 'd', 'e']

>>> loop_slicing(my_list, (25, 4))

['z', 'a', 'b', 'c', 'd']

我可以在其中生成一个生成器,该生成器可以生成range(0,26)中的5个连续数字,以遍历my_list并每次获取5个项目.

我不知道这是否是最好的方法.那么,有没有更有效的方法来做这些事情?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值