第一種方法:特點是直接、容易理解,缺點是速度慢,只能實現循環左移。
def demo(lst, k): temp = lst[:] for i in range(k): temp.append(temp.pop(0)) return temp
第二種方法:特點是速度快,并且自適應循環左移(k>0)和右移(k<0),缺點是涉及到算法,不容易理解。
def demo(lst, k): x = lst[:k] x.reverse() y = lst[k:] y.reverse() r = x+y return list(reversed(r))
最Pythonic的終極方法:使用切片,簡單易理解,速度最快,可同時實現循環左移(k>0)和右移(k<0)。
def demo(lst, k): return lst[k:] + lst[:k]
以上這篇Python序列循環移位的3種方法推薦就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答