Python 练习实例68
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
程序分析:无。
程序源代码:
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
n = int(raw_input('整数 n 为:\n'))
m = int(raw_input('向后移 m 个位置为:\n'))
def move(array,n,m):
array_end = array[n - 1]
for i in range(n - 1,-1,- 1):
array[i] = array[i - 1]
array[0] = array_end
m -= 1
if m > 0:move(array,n,m)
number = []
for i in range(n):
number.append(int(raw_input('输入一个数字:\n')))
print '原始列表:',number
move(number,n,m)
print '移动之后:',number
以上实例输出结果为:
整数 n 为: 8 向后移 m 个位置为: 5 输入一个数字: 2 输入一个数字: 8 输入一个数字: 6 输入一个数字: 1 输入一个数字: 78 输入一个数字: 45 输入一个数字: 34 输入一个数字: 2 原始列表: [2, 8, 6, 1, 78, 45, 34, 2] 移动之后: [1, 78, 45, 34, 2, 2, 8, 6]
Python 100例



kui
che***ui_1982@hotmail.com
以下实例提供 7 个数,每个数向后移动3位,最后 3 位数变为最前面的 3 位。
实例解法一:
实例解法二:
#!/usr/bin/python # -*- coding: UTF-8 -*- m = 3 a = [1,2,3,4,5,6,7] def rot(a,n): l = len(a) n = l-n return a[n:l]+a[0:n] b = rot(a,m) print a print bkui
che***ui_1982@hotmail.com
等一个人
252***465@qq.com
参考方案:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- a = [1, 2, 3, 4, 5] # 测试列表 m = 3 # 设置向后移动 3 位 for _ in range(m): a.insert(0, a.pop()) print(a)等一个人
252***465@qq.com
朦胧
253***5732@qq.com
参考方法:
# coding:utf-8 n=int(input("输入整数1~n:")) List=[] for i in range(1,n+1): List.append(i) print("打印1~n:",List) print() m=int(input("输入要移动的位数:")) List2=List[n-m:n+1]+List[0:n-m] print("打印移动后的结果:",List2)朦胧
253***5732@qq.com
helloworld
hol***ord@qq.com
参考方法:
helloworld
hol***ord@qq.com
CosmosHua
cos***cosmos@163.com
Python3 测试:
def rLoop(ls, m): n = len(ls) return ls[n-m:n]+ls[0:n-m] ls = [i for i in range(1, 10)] print(rLoop(ls, 3)) #result: [7, 8, 9, 1, 2, 3, 4, 5, 6]CosmosHua
cos***cosmos@163.com
sssss
lij***2033@qq.com
参考方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 设置 9 个数 n=[1,2,3,4,5,6,7,8,9] # 前面各数顺序向后移 5 个位置 m = 5 c=[] for i in range(len(n)): if i<(len(n)-m): c.append(n[i]) for i in c: n.remove(i) n.extend(c) print(n)sssss
lij***2033@qq.com
薄荷可乐
r49***7365@163.com
参考方法:
#coding=utf-8 a=[] n=input('您想输入几位数:') for i in range(1,n+1): s=input('请输入第%d位数:'%i) a.append(s) m=input('您想将列表移动几位:') print '排序前列表:%s'%a b=a[-m:] #获取后面的m个数 c=a[:-m] #获取前面除了m的数 a=b+c #拼接成新列表 print '排序后列表:%s'%a薄荷可乐
r49***7365@163.com
大大大大大大大熊
382***076@qq.com
参考方法:
#coding:utf-8 #移动位数不应该超过数组长度大小 a=[] b=[] n=int(input("几个数:" )) m=int(input("移动位数:" )) for i in range(n): a.append(int(input("请输入第 %d 个数:" %(i+1)))) b.extend(a*2) print(a) print(b[len(a)-m:2*len(a)-m])大大大大大大大熊
382***076@qq.com
iMax4ever
jia***@foxmail.com
Python3:切片
#coding:utf-8 n = int(input('整数 n 为:')) m = int(input('向后移 m 个位置为:')) L = [] for i in range(n): print('请输入第{}个数字:'.format(i+1), end='') L.append(int(input(''))) print('原始列表为:', L) print('更新列表为:', L[n-m:] + L[:n-m])iMax4ever
jia***@foxmail.com
郭扬乔
944***785@qq.com
参考:
#!/usr/bin/python # -*- coding: UTF-8 -*- c = [2, 8, 6, 1, 78, 45, 34, 2] for x in range(3): c.append(c.pop(0)) print c郭扬乔
944***785@qq.com
ng
409***567@qq.com
python3 实测通过
# -*- coding:UTF-8 -*- a=[2, 8, 6, 1, 78, 45, 34, 2] print(a) m=int(input('输入m:')) if(m>=len(a)): print('error') for i in range(m): a.insert(0,a.pop()) print(a)ng
409***567@qq.com