Python 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组.

如题所述

list=[3,4,5,2,3,4,6]
maxvalue=max(list);
minvalue=min(list);
maxflag=minflag=1
for iflag,i in enumerate(list):
    if i == maxvalue:
        maxflag=iflag
    elif i==minvalue:
        minflag=iflag
temp=list[0]
list[0]=maxvalue
list[maxflag]=temp
temp=list[len(list)-1]
list[len(list)-1]=minvalue
list[minflag]=temp
print(list)


写的有点死板,也没学多久

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-27
def maxminchange(array):
  maxindex=array.index(max(array))
  minindex=array.index(min(array))
  array[maxindex],array[0]=array[0],array[maxindex]
  array[minindex],array[-1]=array[-1],array[minindex]

if __name__=="__main__":
  import sys
  if sys.version[0]=='3':raw_input=input
  array=eval(raw_input("please input a array:"))
  maxminchange(array)
  print(array)

追问

请问,那个数组怎么输入啊?

本回答被提问者和网友采纳
第2个回答  2019-09-03
def inp(numbers):
for i in range(6):
numbers.append(int(input(': ')))


p = 0

def arr_max(array):
max = 0
for i in range(1,len(array)):
p = i
if array[p] > array[max]:max=p
k = max
array[0],array[k] = array[k],array[0]
def arr_min(array):
min = 0
for i in range(1,len(array)):
p = i
if array[p]< array[min]:min = p
l = min
array[5],array[l]= array[l],array[5]

def outp(numbers):
for i in range(len(numbers)):
print (numbers[i])

if __name__ == '__main__':
array = []
inp(array)   # 输入 6 个数字并放入数组
arr_max(array)   # 获取最大元素并与第一个元素交换
arr_min(array)   # 获取最小元素并与最后一个元素交换
print('result: ')
outp(array)

第3个回答  2020-08-31
不知道为啥,Mac没法在这里插入代码= =
给你个简单的思路:
s = [333, 444, 111, 23, 666, 888]

smax = max(s)
max_index = s.index(smax)
smin = min(s)
min_index = s.index(smin)

s[max_index] = s[0]
s[0] = smax
s[min_index] = s[-1]
s[-1] = smin
print(s)