鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 12

  [复制链接]
发表于 2018-11-16 18:50:06 | 显示全部楼层
????????
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-22 21:46:38 | 显示全部楼层
  1. def inp(number):
  2.     for i in range(9):
  3.         number.append(int(input("请输入数字:")))
  4. def max_min(array):
  5.     max = min = 0
  6.     for i in range(0,len(array)):
  7.         if array[i]>array[max]:
  8.             max = i
  9.         elif array[i]<array[min]:
  10.             min = i
  11.     array[0],array[max] = array[max],array[0]
  12.     array[len(array)-1],array[min] = array[min],array[len(array)-1]
  13. def outp(numbers):
  14.     for i in range(len(numbers)):
  15.         print(numbers[i])
  16.    
  17. if __name__ == "__main__":
  18.     array = []
  19.     inp(array)
  20.     max_min(array)
  21.     outp(array)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 18:06:41 | 显示全部楼层
a = input('请输入一组数组(用,号隔开): ').split(',')
b = [int(i) for i in a ]
num_max = max(b)
b[b.index(num_max)],b[0] = b[0],num_max
num_min = min(b)
b[b.index(num_min)],b[-1] = b[-1],num_min
print(b)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-27 23:58:48 | 显示全部楼层
print("----------习题12---------")

a = input("请输入多个整数以逗号.隔开:").split('.')
list(a)
x = [];
for n in a:
  x.append(int(n));
b = []
b.append(max(x))
b.append(min(x))
x[x.index(max(x))]=x[0]
x[x.index(min(x))]=x[-1]
x[0]=max(b)
x[-1]=min(b)
print("新的数组是:",x)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-3 15:08:50 | 显示全部楼层
kankan
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-28 16:45:38 | 显示全部楼层
a=[1,2,3,5436,4,5,6,7,8,0,452,542,54]

b =sorted(a)
for k,v in enumerate(a):
    if b[-1] == a[k]:
        s = a[0]
        h = a[k]
        a[0]=h
        a[k]=s
    if b[0] == a[k]:
        j = a[-1]
        m = a[k]
        a[-1],a[k]=m,j

print(a)
虽然很low,但是应该可以实现。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-2 20:37:39 | 显示全部楼层
  1. s = input("输入数组:")
  2. li = list(s)
  3. oldli = li.copy()
  4. li.sort()
  5. s = 0
  6. b = 0

  7. for i in range(len(li)):
  8.     if oldli[i] == li[0]:
  9.         s = i
  10.     if oldli[i] == li[-1]:
  11.         b = i
  12. print(s,b,len(li) - 1)
  13. if b != (len(li) - 1) and s != 0:
  14.     oldli[s] = oldli[-1]
  15.     oldli[b] = oldli[0]

  16. elif b == len(li) - 1:
  17.     oldli[s] = oldli[0]
  18.    
  19. elif s == 0:
  20.     oldli[b] = oldli[-1]

  21. oldli[0] = li[-1]
  22. oldli[-1] = li[0]
  23. print(oldli)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 09:49:43 | 显示全部楼层
冬雪雪冬 发表于 2017-3-30 19:24
没有想到更好的写法。

这里有个问题,假如最小的就是第一个,最大的就是最后一个,那么结果将不会有任何变化
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 09:53:32 | 显示全部楼层
题主,我想知道,假如原来的数组,第一个就是最小值,第二个就是最大值,【12,35,21,13,45】 ,那么按照题目,输出结果应该是怎样的?【45,35,21,13,12】?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 10:07:09 | 显示全部楼层
注意逻辑:
  1. arr = [x for x in input("输入一组数字,用空格隔开:").split(" ")]
  2. print("原来的数组:", arr)

  3. max_index = arr.index(max(arr))
  4. arr[0], arr[max_index] = arr[max_index], arr[0]

  5. min_index = arr.index(min(arr))
  6. arr[-1], arr[min_index] = arr[min_index], arr[-1]

  7. print("修改后的数组:", arr)
复制代码


不要写成:
  1. arr = [x for x in input("输入一组数字,用空格隔开:").split(" ")]
  2. print("原来的数组:", arr)

  3. max_index = arr.index(max(arr))
  4. min_index = arr.index(min(arr))

  5. arr[0], arr[max_index] = arr[max_index], arr[0]
  6. arr[-1], arr[min_index] = arr[min_index], arr[-1]

  7. print("修改后的数组:", arr)
复制代码


这两个在面对数组【1,2,3,4,5】时,结果会不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-4 16:13:51 | 显示全部楼层
arr = [5, 2, 8, 9, 3, 4]
maxi = arr.index(max(arr))
mini = arr.index(min(arr))
arr[0], arr[maxi],arr[-1], arr[mini] = arr[maxi], arr[0],arr[mini], arr[-1]
print(arr)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 12:52:03 | 显示全部楼层
num_out=[]
while(True):
    str_in=input("请输入一个数字作为数组成员(以回车键结束输入:)")
    if str_in=='':
        break
    elif str_in.isalnum():
        num_out.append(int(str_in))
    else:
        print("无效字符,请重新输入")
temp=max(num_out)
index_max=num_out.index(max(num_out))
num_out[index_max]=num_out[0]
num_out[0]=temp
temp=min(num_out)
index_min=num_out.index(min(num_out))
num_out[index_min]=num_out[-1]
num_out[-1]=temp

print(num_out)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-27 19:54:36 | 显示全部楼层
import random

l1 = [random.randint(1, 100) for i in range(10)]
print(l1)

if l1[0] != max(l1):
    t = max(l1)
    l1.remove(max(l1))
    l1.insert(0, t)

if l1[-1] != min(l1):
    t1 = min(l1)
    l1.remove(min(l1))
    l1.append(t1)
print(l1)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-27 22:41:19 From FishC Mobile | 显示全部楼层
谢谢分享!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-7 21:49:20 | 显示全部楼层
a = [1,5,8,9,6,3,7,45,98,32,15,79]
ma = max(a)
mi = min(a)
a[a.index(ma)] =a[0]
a[0] = ma
a[a.index(mi)] =a[-1]
a[-1] = mi

print(a)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-3 14:08:13 | 显示全部楼层
  1. import random
  2. list1 = [random.randint(1,100) for i in range(10)]
  3. print(list1)
  4. max = list1[0]
  5. min = list1[0]
  6. for i in range(len(list1)):
  7.     if list1[i] > max:
  8.         max = list1[i]
  9.     else:
  10.         continue
  11. print('最大值是{}'.format(max))

  12. for i in range(len(list1)):
  13.     if list1[i] < min:
  14.         min = list1[i]
  15.     else:
  16.         continue
  17. print('最小值是{}'.format(min))

  18. list1[list1.index(max)] = list1[0]
  19. list1[0] = max
  20. print(list1)

  21. list1[list1.index(min)] = list1[-1]
  22. list1[-1] = min
  23. print(list1)
复制代码


[92, 50, 48, 62, 42, 53, 98, 23, 4, 69]
[98, 50, 48, 62, 42, 53, 92, 23, 69, 4]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-11 11:11:45 | 显示全部楼层
  1. # 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
  2. import random as r

  3. def answer1(list):
  4.     m = max(list)
  5.     n = min(list)
  6.     list[list.index(n)], list[-1] = list[-1], n
  7.     list[list.index(m)], list[0] = list[0], m
  8.     print(list)

  9. if __name__ == '__main__':
  10.     list1 = []
  11.     for i in range(10):
  12.         i = r.randint(1, 100)
  13.         list1.append(i)              #生成含10个(1-100)随机数列表
  14.     print(list1)

  15.     answer1(list1[:])                #传入列表切片进行数据处理
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-13 14:58:40 | 显示全部楼层
sjhfdasifdhasifhiaih
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-27 17:47:52 | 显示全部楼层
交作业~
  1. def find_max(num):
  2.           length = len(num)
  3.           max1 = num[0]
  4.           for each in range(length-1):
  5.                     if max1 < num[each]:
  6.                               max1 = num[each]
  7.           return max1

  8. def find_min(num):
  9.           length = len(num)
  10.           min1 = num[0]
  11.           for each in range(length-1):
  12.                     if min1 < num[each]:
  13.                               min1 = num[each]
  14.           return min1




  15. def main():
  16.           num= []
  17.           i = 1
  18.           x = int(input('请输入数组的个数:'))
  19.           while i <=x:
  20.                     temp = int(input('请你输入第%d个数字:'%i) )
  21.                     num.append(temp)
  22.                     i += 1
  23.           for each in range(len(num)):
  24.                     if find_max(num) == num[each]:
  25.                               break
  26.           for each2 in range(len(num)):
  27.                     if find_min(num) == num[each]:
  28.                               break
  29.           length = len(num)
  30.           num[each],num[0] = num[0],num[each]
  31.           num[each2],num[length-1]= num[length-1],num[each2]
  32.           print(num)
  33. if __name__ =='__main__':
  34.           main()
  35.          

  36.          
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-7 21:46:56 | 显示全部楼层
def change(a):
    for i in range(0,len(a)-1):
        if a[i] >= a[i+1]:
            a[0],a[i] = a[i],a[0]
        else:
            a[0],a[i+1] = a[i+1],a[0]
        if a[i] <= a[i+1]:
            a[len(a)-1],a[i] = a[i],a[len(a)-1]
        else:
            a[len(a)-1],a[i+1] = a[i+1],a[len(a)-1]
    print(a)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 00:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表