鱼C论坛

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

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

  [复制链接]
发表于 2018-3-6 13:13:20 | 显示全部楼层
本帖最后由 瞬秒爆加速 于 2018-3-6 13:32 编辑
  1. import collections
  2. def mx(li):
  3.     li[li.index(max(li))],li[0] = li[0],int(max(li))
  4.     li[li.index(min(li))],li[-1] = li[-1],int(min(li))
  5.     return li

  6. a = input()
  7. li = collections.UserList(a)

  8. for i in range(len(li)):
  9.         li[i] = int(li[i])
  10. if __name__=="__main__":
  11.     print(mx(li))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-8 14:40:31 | 显示全部楼层
  1. l = []
  2. while 1:
  3.     temp = input("请输入数组,回车结束")
  4.     if temp == '':
  5.         break
  6.     else:
  7.         l.append(int(temp))
  8. for i in range(1,len(l)):
  9.     if l[0] < l[i]:
  10.         temp = l[i]
  11.         l[i] = l[0]
  12.         l[0] = temp
  13.     if l[-1] > l[i]:
  14.         temp = l[i]
  15.         l[i] = l[-1]
  16.         l[-1] = temp
  17. print(l)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-17 12:56:33 | 显示全部楼层
lala
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-26 08:45:37 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-26 10:28:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-7 16:33:17 | 显示全部楼层
  1. '''
  2. 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换
  3. 输出数组。
  4. '''
  5. def replacelist(la):
  6.     maxnum=max(la)
  7.     minnum=min(la)
  8.     maxs=la.index(maxnum)
  9.     la[0],la[maxs]=la[maxs],la[0]
  10.     mins=la.index(minnum)
  11.     la[-1],la[mins]=la[mins],la[-1]
  12.     return la

  13. mylist=[2,12,16,15,99,82,100,3,72,180]
  14. print(mylist)
  15. print(replacelist(mylist))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-9 14:28:58 From FishC Mobile | 显示全部楼层
2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-20 11:44:27 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-20 13:20:05 From FishC Mobile | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-20 14:48:23 | 显示全部楼层
楼主厉害了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-20 15:44:19 | 显示全部楼层
# 1.输入一个数组并接受数组


def inp(number, num):

    print("数组共有%d个元素..." % num)

    for i in range(num):
        number.append(int(input("请输入第%d个数字:" % (i+1))))
    print(number)


# 2.判断最大值与第一个元素交换,判断最小值与最后一个元素交换
def chang(number):

    maxy = minn = 0

    for j in number:

        if number[maxy] < j:
            maxy = number.index(j)

        if number[minn] > j:
            minn = number.index(j)
    print("最大值是%d " % number[maxy])
    print("最小是是%d" % number[minn])
    number[maxy], number[0] = number[0], number[maxy]
    number[minn], number[-1] = number[-1], number[minn]

    print("最后的结果是:%s " % number)


array = []

inp(array, 5)

chang(array)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-26 16:26:35 | 显示全部楼层
Nums = input('请输入一组数,空格间隔:').split()
for i in range(len(Nums)):
    Nums[i]=int(Nums[i])
print('你输入的数组为:')
print(Nums)
MaxNum = max(Nums)
MinNum = min(Nums)
# Nums[0],Nums[Nums.index(MaxNum)] = Nums[Nums.index(MaxNum)],Nums[0] #吐血,不知道为啥这样写不行!
Nums[Nums.index(MaxNum)],Nums[0] = Nums[0],Nums[Nums.index(MaxNum)]
Nums[len(Nums)-1],Nums[Nums.index(MinNum)] = Nums[Nums.index(MinNum)],Nums[len(Nums)-1]
print('交换顺序后的数组为:')
print(Nums)
求解释下,
Nums[0],Nums[Nums.index(MaxNum)] = Nums[Nums.index(MaxNum)],Nums[0]   不能交换
Nums[Nums.index(MaxNum)],Nums[0] = Nums[0],Nums[Nums.index(MaxNum)]   可以交换
这是为什么啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-9 12:34:23 | 显示全部楼层
  1. from random import randint
  2. x = [randint(1,1000) for i in range(0,10)]
  3. print(x)
  4. a = x.index(max(x))
  5. b = x.index(min(x))
  6. c = len(x)-1

  7. x[a],x[0] = x[0],x[a]
  8. x[b],x[c] = x[c],x[b]
  9. print(x)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-10 15:27:01 | 显示全部楼层
#输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
import random
shuzu=[random.randint(1,100) for i in range(10)]
print(shuzu)
maxx=max(shuzu)
minx=min(shuzu)
print("最大的值是 %d \n最小的值是 %d "%(maxx,minx))
shuzu[shuzu.index(maxx)],shuzu[0]=shuzu[0],shuzu[shuzu.index(maxx)]
shuzu[shuzu.index(minx)],shuzu[-1]=shuzu[-1],shuzu[shuzu.index(minx)]
print(shuzu)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-15 11:08:19 | 显示全部楼层
不会,学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-21 12:00:48 | 显示全部楼层
list1 = []
tag = True

while tag:
        i = input("请输入整数,按quit离开:")       
        if i == 'quit':
                tag = False
        else:
                list1.append(int(i))
               
print(list1)
print('+++++++++++++++++++++++')

min = max = list1[0]
min_tag = max_tag = 0

for i in list1:
        j = 0       
        if i < min:
                min = i
                min_tag = j
        if i > max:
                max = i
                max_tag = j
        j = j+1       
       
first = list1[0]
last = list1[len(list1)-1]

list1[0] = max
list1[max_tag] = first
list1[len(list1)-1] = min
list1[min_tag] = last

print(list1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-28 14:49:40 | 显示全部楼层
本帖最后由 892427369 于 2018-7-28 14:52 编辑

得能够处理以下特殊情况:
1.一个数组当中有多个最大或最小的数字
2.最大或最小的数本身就在首尾

  1. a = input('请输入一个数组,以空格分开:')
  2. b = a.split(" ")
  3. c = []
  4. for x in b:
  5.     c.append(float(x))
  6. d = c
  7. if d[0] != max(d):
  8.     for y in range(d.count(max(d))):
  9.         c.insert(c.index(max(c)),c[0])
  10.         c.insert(0,c.pop(c.index(max(c))))
  11.     for y in range(d.count(max(d))):
  12.         c.pop(1)
  13. if d[-1] != min(d):
  14.     for y in range(d.count(min(d))):
  15.         c.insert(c.index(min(c)),c[-1])
  16.         c.insert(-1,c.pop(c.index(min(c))))
  17.     for y in range(d.count(min(d))):
  18.         c.pop(-1)
  19. print('最大的与第一个元素交换,最小的与最后一个元素交换,结果是:',c,sep="\n")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 11:42:33 | 显示全部楼层
本帖最后由 CC柴 于 2018-7-31 11:56 编辑
  1. def list1(n):
  2.     x = max(n)
  3.     y = min(n)
  4.     n[0] = x
  5.     n[len(n)-1] = y
  6.     print(n)
  7. list1([2,6,9,8,7,3,5,4])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 21:09:25 | 显示全部楼层
  1. def hunaxu():
  2.     list1 = input("请输入一串数字,用空格隔开:").split(" ")
  3.     for i in range(len(list1)):
  4.         list1[i] = int(list1[i])
  5.     if list1[0] == max(list1) and list1[len(list1) - 1] == min(list1):
  6.         print(list1)
  7.     else:
  8.         for j in range(len(list1)):
  9.             if list1[j] == max(list1):
  10.                 list1[0], list1[j] = list1[j], list1[0]
  11.             if list1[j] == min(list1):
  12.                 list1[len(list1) - 1], list1[j] = list1[j], list1[len(list1) - 1]
  13.         print(list1)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 22:50:42 | 显示全部楼层
看答案。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 20:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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