鱼C论坛

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

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

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

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

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

使用道具 举报

发表于 2018-3-8 14:40:31 | 显示全部楼层
l = []
while 1:
    temp = input("请输入数组,回车结束")
    if temp == '':
        break
    else:
        l.append(int(temp))
for i in range(1,len(l)):
    if l[0] < l[i]:
        temp = l[i]
        l[i] = l[0]
        l[0] = temp
    if l[-1] > l[i]:
        temp = l[i]
        l[i] = l[-1]
        l[-1] = temp
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 | 显示全部楼层
'''
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换
输出数组。
'''
def replacelist(la):
    maxnum=max(la)
    minnum=min(la)
    maxs=la.index(maxnum)
    la[0],la[maxs]=la[maxs],la[0]
    mins=la.index(minnum)
    la[-1],la[mins]=la[mins],la[-1]
    return la

mylist=[2,12,16,15,99,82,100,3,72,180]
print(mylist)
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 | 显示全部楼层
from random import randint
x = [randint(1,1000) for i in range(0,10)]
print(x)
a = x.index(max(x))
b = x.index(min(x))
c = len(x)-1

x[a],x[0] = x[0],x[a]
x[b],x[c] = x[c],x[b]
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.最大或最小的数本身就在首尾
a = input('请输入一个数组,以空格分开:')
b = a.split(" ")
c = []
for x in b:
    c.append(float(x))
d = c
if d[0] != max(d):
    for y in range(d.count(max(d))):
        c.insert(c.index(max(c)),c[0])
        c.insert(0,c.pop(c.index(max(c))))
    for y in range(d.count(max(d))):
        c.pop(1)
if d[-1] != min(d):
    for y in range(d.count(min(d))):
        c.insert(c.index(min(c)),c[-1])
        c.insert(-1,c.pop(c.index(min(c))))
    for y in range(d.count(min(d))):
        c.pop(-1)
print('最大的与第一个元素交换,最小的与最后一个元素交换,结果是:',c,sep="\n")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 23:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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