67 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
思路:
- input输入数组
- 寻找最大值,与数组第一个元素交换
- 寻找最小值,与数组最后一个元素交换
- 输出数组
a = []
# 输入6个数字形成矩阵
for i in range(4):
a.append(int(input("请输入数字:")))
print(a)
# 设置最大值与a矩阵第一个元素交换
p = 0 #P必须初始化为0,要不然不对
def max(a):
max = 0 # 初始化矩阵最大值为a[0]
for i in range(1,len(a)-1):
p = i # i = p
if a[p] > a[max]:max = p # 如果矩阵的某个元素大于a[0],就把这个元素赋值给P,接着与矩阵的下一个元素比较
k = max # 把最大值的元素位置赋值给k
a[0],a[k] = a[k],a[0] # 最大值与矩阵的第一个元素交换
max(a)
print("最大值与第一个元素交换后的矩阵:",a)
def min(a):
min = 0 # 初始化矩阵最小值为a[0]
for i in range(1,len(a)-1):
p = i # i = p
if a[p] < a[min]:min = p # 如果矩阵的某个元素小于a[0],就把这个元素赋值给P,接着与矩阵的下一个元素比较
k = min # 把最大值的元素位置赋值给k
a[len(a)-1],a[k] = a[k],a[len(a)-1] # 最小值与矩阵的最后一个元素交换
min(a)
print("最小值与最后一个元素交换后的矩阵:",a)
def out(a): #循环输出
for i in range(0,len(a)): #(0,len(a))是左闭又开的,所以实际输出的是(0,len(a)-1)
print(a[i])
out(a) #循环输出最后的结果
请输入数字:1
请输入数字:4
请输入数字:5
请输入数字:3
[1, 4, 5, 3]
最大值与第一个元素交换后的矩阵: [5, 4, 1, 3]
最小值与最后一个元素交换后的矩阵: [5, 4, 3, 1]
5
4
3
1
68有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数
程序分析:有5(n)个数字,1,2,3,4,5
将前2(m)个数字顺序向后移动2位
4,5,1,2,3
a = []
# 输入n个数字形成矩阵
n = int(input("矩阵有几位数字:"))
m = int(input("请输入向后移动数字为几位:"))
for i in range(n):
a.append(int(input("请输入数字:")))
print(a)
#向后移动的函数
def move(a,n,m):
a_end = a[n-1] #找到矩阵的最后一位
for i in range(n-1,-1,-1): #依次循环将矩阵的后面一位赋值给前一位
a[i] = a[i-1]
a[0] = a_end #把矩阵的最后一位幅值给第一位
m -= 1 #循环一次m减去1次
if m > 0: #如果m>0,就继续移动,否则将跳出循环
move(a,n,m)
move(a, n, m)
print('移动之后:', a)
矩阵有几位数字:5
请输入向后移动数字为几位:2
请输入数字:1
请输入数字:2
请输入数字:3
请输入数字:4
请输入数字:5
[1, 2, 3, 4, 5]
移动之后: [4, 5, 1, 2, 3]
方法二:
n = int(input("请输入数字个数:"))
m = int(input("请输入移动的位置:"))
l = []
l1 = []
for i in range(n):
l.append(int(input("Pls input a num:")))
print("原数组:",l)
if n < m:
print("输入有误,移动位置应该小于数字个数")
else:
for i in range(n-m):
l1.append(l.pop()) #l1新增 原数组中删除末尾三个数字
print(l1)
l1.reverse() #因为pop是先删除末尾的数字,所以需要先反转过来
l1.extend(l) #再将原数组l中剩余的数字补充到l1中,构成和原数组长度一样的数组
print(l1)
请输入数字个数:5
请输入移动的位置:2
Pls input a num:1
Pls input a num:2
Pls input a num:3
Pls input a num:4
Pls input a num:5
原数组: [1, 2, 3, 4, 5]
[5, 4, 3]
[3, 4, 5, 1, 2]
pop() 函数描述
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
语法
pop()方法语法:
list.pop([index=-1])
参数
obj -- 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。
返回值
该方法返回从列表中移除的元素对象。
reverse() 函数描述
reverse() 函数用于反向列表中元素。
语法
reverse()方法语法:
list.reverse()
参数
NA。
返回值
该方法没有返回值,但是会对列表的元素进行反向排序。
extend() 函数
extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
语法
extend()方法语法:
list.extend(seq)
参数
seq -- 元素列表。
返回值
该方法没有返回值,但会在已存在的列表中添加新的列表内容。