Python列表循环左移

题目:编写程序生成一个包含15个介于1到100 之间随机整数的列表,将其循环左移5个元素。

方法1:使用切片,简单易理解,速度最快,可同时实现循环左移(k>0)和右移(k<0)。

def demo(lst, k):
    return lst[k:] + lst[:k]

代码实现:

import random
a=[random.randint(1,100) for i in range(15)]
print(a)
def demo (a, n):
    return (a[n:] + a[:n])     #n之后的部分连接n之前的部分
tmp = a[:]
print(demo(tmp,5))

运行结果:
在这里插入图片描述

方法2:特点是直接、容易理解,缺点是速度慢,只能实现循环左移。

def demo(lst, k):
    temp = lst[:]
    for i in range(k):
        temp.append(temp.pop(0))
    return temp

代码实现:

import random
a=[random.randint(1,50) for i in range(15)]
print(a)
for i in range(5):
    a.append(a.pop(0))
print(a)

方法3
代码实现:

import random
a=[random.randint(1,50) for i in range(15)]
print(a)
for i in range(5):
    a.insert(len(a),a[0])
    a.remove(a[0])
print(a)
发布了104 篇原创文章 · 获赞 263 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zag666/article/details/104974651
今日推荐