鱼C论坛

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

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

  [复制链接]
发表于 2018-8-24 10:57:51 | 显示全部楼层
本帖最后由 acgods 于 2018-8-24 11:19 编辑
# 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

# list1 = [5,3,46,88,99]
list1 = []
for i in range(5):
    x = int(input("请输入一个数组:"))
    list1.append(x)
print(list1)

temp = list1[0]
maxIndex = 0
minIndex = 0
for i in range(len(list1)):
    if list1[i] > temp:
        maxIndex = i
    elif list1[i] < temp:
        minIndex = i
temp = list1[0]
list1[0] = list1[maxIndex]
list1[maxIndex] = temp

temp = list1[len(list1)-1]
list1[len(list1)-1] = list1[minIndex]
list1[minIndex] = temp

print(list1)

看了大家的答案后,又对原来的代码进行了修改
# 方法2 
list2 = [5,3,46,88,99]
# for i in range(5):
#     x = int(input("请输入一个数组:"))
#     list2.append(x)
print("原来的列表是:",list2)
maxIndex = list2.index(max(list2))
minIndex = list2.index(min(list2))
list2[0],list2[maxIndex] = list2[maxIndex],list2[0]
list2[-1],list2[minIndex] = list2[minIndex],list2[-1]
print("新的列表是:",list2)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-30 14:56:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-11 23:23:19 | 显示全部楼层
import random

give_list=[]
for i in range(6):
    tmp = random.randint(1,100)
    if tmp not in give_list:
        give_list.append(tmp)
    else:
        give_list.append(random.randint(110+i,110+i+1))
print(give_list)
give_list[give_list.index(max(give_list))],give_list[0] = give_list[0],give_list[give_list.index(max(give_list))]
print(give_list)
give_list[give_list.index(min(give_list))],give_list[-1] = give_list[-1],give_list[give_list.index(min(give_list))]
print(give_list)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-9-12 10:02:22 From FishC Mobile | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

发表于 2018-9-12 19:01:50 From FishC Mobile | 显示全部楼层
b=input('请输入数组元素,每个数之间用逗号隔开:')
a=[int(n) for n in b.split(',')]
c=d=0
for i in range(len(a)):
        if a[i]>a[0]:
                c=a[0]
                a[0]=a[i]
                a[i]=c
        elif a[i]<a[len(a)-1]:
                d=a[len(a)-1]
                a[len(a)-1]=a[i]
                a[i]=d
print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 20:06:19 | 显示全部楼层
66666666666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-10-11 14:13:20 | 显示全部楼层
#!/usr/bin/python
# -*- coding:utf-8 -*-
def fun_max():
    max = 0
    n=0
    for num in range(len(li)):
        if max>li[num]:
            pass
        else:
            max =li[num]
            n=num
    li[0],li[n] = li[n],li[0]
    print(li)
def fun_min():
    min =li[0]
    m=0
    for k in range(len(li)):
        if min<li[k]:
            pass
        else:
            min =li[k]
            m=k
    li[m],li[-1] = li[-1],li[m]
    print(li)
import random
li = []
for i in range(5):                   #循环次数,控制产生随机数的个数
    li.append(random.randint(0, 50)) #产生一个0到50的随机数
print(li)
fun_max()
fun_min()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-13 22:18:22 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-16 12:59:12 | 显示全部楼层
回复看咪咪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-25 16:55:47 | 显示全部楼层
本帖最后由 Roc乘风 于 2018-10-25 17:13 编辑

打卡,看楼主的法宝
def fl(n):
    score =[]

    for i in range(0,n):
        x = int(input('Plesae input:'))
        score.append(x)
        
    score1 = max(score)
    score2 =min(score)
    score[0],score[n-1] = score1,score2
    return score


print(fl(9))

日了狗了,写错了,,,我发现我就是在写bug
重写:
def fl(n):
    score =[]

    for i in range(0,n):
        x = int(input('Plesae input:'))
        score.append(x)

    score[score.index(max(score))],score[0]= score[0],score[score.index(max(score))]
    score[score.index(min(score))], score[n-1] = score[n-1],score[score.index(min(score))]

    return score


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

使用道具 举报

发表于 2018-11-16 15:34:04 | 显示全部楼层
ooxx7788 发表于 2017-3-30 18:19
其实只需要一句!

输出

老哥能解释下,看不懂交换位置的那2句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 15:34:51 | 显示全部楼层
冬雪雪冬 发表于 2017-3-30 19:24
没有想到更好的写法。

老哥能给解释下吗?交换顺序的那2句看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 15:41:35 | 显示全部楼层
liujian973 发表于 2018-11-16 15:34
老哥能给解释下吗?交换顺序的那2句看不懂

就是简单的变量的值交换,其它语言如果交换两个变量a和b需要
temp = a
a = b
b = temp
而python则可以简单的写成:
a, b = b, a
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 16:14:41 | 显示全部楼层
本帖最后由 liujian973 于 2018-11-16 16:41 编辑
冬雪雪冬 发表于 2017-3-30 19:24
没有想到更好的写法。


lst = [int(i) for i in input('请输入一组数字,用空格隔开: ').split(' ')]
print(lst)
maxx = max(lst)
minn = min(lst)
lst[lst.index(maxx)], lst[0] = lst[0], lst[lst.index(maxx)]
lst[-1], lst[lst.index(minn)] = lst[lst.index(minn)], lst[-1]
print(lst)

————————————————————————————
lst[lst.index(maxx)], lst[0] = lst[0], lst[lst.index(maxx)]
这一句看不懂,lst[0] = lst[0] 怎么交换的
前后两个st[lst.index(maxx)], 都是同样的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 16:38:43 | 显示全部楼层
liujian973 发表于 2018-11-16 16:14
lst[lst.index(maxx)], lst[0] = lst[0], lst[lst.index(maxx)]
这一句看不懂,都是 lst[0] 怎么交换的

相当于同时将lst[0]的值给lst[lst.index(maxx)],lst[lst.index(maxx)]的值给 lst[0]
即等同于:
temp = lst[lst.index(maxx)]
lst[lst.index(maxx)] = lst[0]
lst[0] = temp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 16:45:50 | 显示全部楼层
冬雪雪冬 发表于 2018-11-16 16:38
相当于同时将lst[0]的值给lst[lst.index(maxx)],lst[lst.index(maxx)]的值给 lst[0]
即等同于:
temp  ...


抱歉我之前弄错了,将表达时看错了,看成了3部分一直没看懂。谢谢了

之前看成了#lst[lst.index(maxx)],#           lst[0] = lst[0],#                     lst[lst.index(maxx)]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 16:54:38 | 显示全部楼层
def max_and_min(list0):
        max_number=[0,float('-inf')]
        min_number=[0,float('inf')]
        for i in enumerate(list0):
                if  i[1] >max_number[1]:
                        max_number=i
                if  i[1] <min_number[1]:
                        min_number=i
        list0[0],list0[max_number[0]],list0[-1],list0[min_number[0]]=list0[max_number[0]],list0[0],list0[min_number[0]],list0[-1]
        return list0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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