鱼C论坛

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

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

  [复制链接]
发表于 2017-10-10 21:30:02 | 显示全部楼层
冬雪雪冬 发表于 2017-3-30 19:24
没有想到更好的写法。

05.lst[lst.index(maxx)], lst[0] = lst[0], lst[lst.index(maxx)]

06.lst[-1], lst[lst.index(minn)] = lst[lst.index(minn)], lst[-1]

能给解释下这两句吗?不是很清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 21:33:12 | 显示全部楼层
lumber2388779 发表于 2017-10-10 21:22
arr[-1],arr[minindex] = arr[minindex],arr[-1]其实就是相互交换 两个变量的值这是python的特殊语法
如 ...

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

使用道具 举报

发表于 2017-10-10 23:06:57 | 显示全部楼层
驻火蚁 发表于 2017-10-10 21:30
05.lst[lst.index(maxx)], lst[0] = lst[0], lst[lst.index(maxx)]

06.lst[-1], lst[lst.index(minn)] ...

05行,lst.index(maxx)得到最大值的位置,然后最大值和第0个值互换,06行类似
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-16 17:21:43 | 显示全部楼层
array=[2,3,5,8,1,6,7]
i=0;
min=array[0]
minzb=0
max=array[0]
maxzb=0
for each in range(0,len(array)):
    if(min>array[each]):
        min=array[each]
        minzb=i
    if(array[each]>max):
        max=array[each]
        maxzb=i
    i=i+1
array[minzb]=array[0]
array[0]=min
array[maxzb]=array[len(array)-1]
array[len(array)-1]=max
print(array)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-12 22:18:11 | 显示全部楼层
list1 = [1,2,4,8,3]
list1[0],list1[3] = list1[3],list1[0]
list1[3],list1[4] = list1[4],list1[3]
print(list1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-3 13:32:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-4 08:54:21 | 显示全部楼层
def changeList(lst):
    maxValue = max(lst)
    minValue = min(lst)
    maxValueIndex = lst.index(maxValue)
    minValueIndex = lst.index(minValue)
    lst[0], lst[maxValueIndex] = lst[maxValueIndex], lst[0]
    lst[-1], lst[minValueIndex] = lst[minValueIndex], lst[-1]
    return lst

a = [69, 35, 51, 29, 58, 3, 16, 53, 90, 28]
b = [3,4,2,1,6,10,7,8]
print(changeList(a))  # 期待结果:[90, 35, 51, 29, 58, 28, 16, 53, 69, 3]
print(changeList(b))  # 期待结果:[10,4,2,8,6,3,7,1]

##    结果符合预期
##    >>> 
##    [90, 35, 51, 29, 58, 28, 16, 53, 69, 3]
##    [10, 4, 2, 8, 6, 3, 7, 1]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 08:56:35 | 显示全部楼层
本帖最后由 andsomesmile 于 2017-12-4 09:39 编辑

def fu(a):
    for i in range(0,len(a)):
        if a[i]==max(a):
            #print 'max i =%d'%i
            c=a[0]
            a[0]=max(a)
            a[i]=c
    for i in range(0,len(a)):
        if a[i]==min(a):
            #print 'min i =%d '%i
            c=a[-1]
            a[-1]=min(a)
            a[i]=c
    print a

a=[11,25,35,11,25,87,67,68,84,41,-1,0,-106,-15,547,556]

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

使用道具 举报

发表于 2017-12-4 09:29:09 | 显示全部楼层
ooxx7788 发表于 2017-3-30 18:19
其实只需要一句!

输出

还是有错误。。
temp[temp.index(max(temp))], temp[0] = temp[0], temp[temp.index(max(temp))]
temp[temp.index(min(temp))], temp[-1] = temp[-1], temp[temp.index(min(temp))]
不行。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 09:38:13 | 显示全部楼层
哨子1122 发表于 2017-4-10 17:11
也写了一个。不知道是不是楼主题目的意思

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

使用道具 举报

发表于 2018-1-29 20:09:52 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-29 21:29:07 | 显示全部楼层
啦啦啦啦啦啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 00:07:23 | 显示全部楼层
看看帖子里藏了啥好东西~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-18 21:07:44 | 显示全部楼层
#题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
a=[]
num=[]
for i in range(10):
    num.append(int(input('请输入一个数')))
a=num[:]
a.sort()
b=num.index(a[0])
c=num.index(a[-1])
d=num[0]
e=num[-1]
num[0]=a[-1]
num[-1]=a[0]
num[b]=d
num[c]=e
print(b,c,d,e)
print(num)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-19 23:05:41 | 显示全部楼层
def S_J_list():
                list1 = []
                import random
                math = random.randint(6,12)
                for x in range(0,math):
                                number = random.randint(0,100)
                                list1.append(number)
                print(list1)
                return list1
def list_DX(list1):
                i = 0
                for i in range(len(list1)):
                               if(list1[i] == max(list1)):
                                               some = list1[0]
                                               list1[0] = list1[i]
                                               list1[i] = some
                               if(list1[i] == min(list1)):
                                               seam = list1[i]
                                               list1[i] = list1[i]
                                               list1[i] = seam
                return list1
print(list_DX(S_J_list()))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-19 23:15:25 | 显示全部楼层
z1446773686 发表于 2018-2-19 23:05
def S_J_list():
                list1 = []
                import random

def S_J_list():
                list1 = []
                import random
                math = random.randint(6,12)
                for x in range(0,math):
                                number = random.randint(0,100)
                                list1.append(number)
                print(list1)
                return list1
def list_DX(list1):
                i = 0
                for i in range(len(list1)):
                               if(list1[i] == max(list1)):
                                               some = list1[0]
                                               list1[0] = list1[i]
                                               list1[i] = some
                               if(list1[i] == min(list1)):
                                               seam = list1[i]
                                               list1[i] = list1[len(list1) - 1]
                                               list1[len(list1) - 1] = seam
                return list1
print(list_DX(S_J_list()))

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

使用道具 举报

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

使用道具 举报

发表于 2018-3-3 16:49:21 | 显示全部楼层
def exchange(lis):
    i = lis.index(max(lis))
    j = lis.index(min(lis))
    lenth = len(lis)
    lis[0], lis[i] = lis[i], lis[0]
    lis[lenth - 1], lis[j] = lis[j], lis[lenth - 1]
    return lis
lis1 = [34, 1, 53, 28, 54, 19, 43]
result = exchange(lis1)
print(result)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2018-3-5 16:02:48 | 显示全部楼层
def exchange(x):
        a = max(x)
        b = min(x)
        aa = x.index(a)
        bb = x.index(b)
        x[0], x[aa] = x[aa], x[0]
        x[-1], x[bb] = x[bb], x[-1]
        return x
       
print(exchange([4,6,-2,5,-99,2,6,9,0]))
       
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 08:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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