鱼C论坛

 找回密码
 立即注册
查看: 25114|回复: 155

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

  [复制链接]
发表于 2017-3-30 17:56:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

程序分析

游客,如果您要查看本帖隐藏内容请回复


欢迎小伙伴们,一起答题!
如果你有能力,欢迎加入我们!
已经上车老司机:@ooxx7788 @lumber2388779   
点我上车

偷偷告诉大家一个秘密:我是实习版主啦!

本帖被以下淘专辑推荐:

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

使用道具 举报

 楼主| 发表于 2017-3-30 17:57:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-30 18:19:19 | 显示全部楼层
本帖最后由 ooxx7788 于 2017-3-30 19:00 编辑
import random

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

temp[temp.index(max(temp))], temp[temp.index(min(temp))], temp[0],  temp[-1] = temp[0], temp[-1],temp[temp.index(max(temp))], temp[temp.index(min(temp))]
print(temp)

其实只需要一句!

输出
[69, 35, 51, 29, 58, 3, 16, 53, 90, 28]
[90, 35, 51, 29, 58, 28, 16, 53, 69, 3]


omg,我发现了自己的一个错误!留下来就当错误示范吧!

以下答案是我修正过的,带自我检查的,不知道还有没有错。以上代码,证明了一句,步子太大容易扯着蛋!
import random

counts = 100
while counts:
    temp = [random.randint(1, 100) for i in range(10)]
    total = sum(temp)
    print(temp)
    
    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))]
    print(temp)
    if total != sum(temp):
        print('There is something wrong!')
        break
    counts -= 1

点评

我很赞同!: 5.0
我很赞同!: 5
哈哈哈,学习了..虽然看不懂...  发表于 2017-3-30 19:15

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
新手·ing + 1 + 1 支持楼主!

查看全部评分

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

使用道具 举报

发表于 2017-3-30 19:24:51 | 显示全部楼层
没有想到更好的写法。
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 1

使用道具 举报

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

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

使用道具 举报

发表于 2017-3-31 10:41:01 | 显示全部楼层
楼主厉害了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-31 17:35:05 | 显示全部楼层

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

使用道具 举报

发表于 2017-4-1 20:50:09 | 显示全部楼层
我也写了一个:
我发现我做你的这些题目,大部分试试在使用字典格式的数据啊,只要有按照一定顺序的,我都把数据放在字典里面操作完之后在变成需要的格式
def test12(the_list):
    num = max(the_list)-min(the_list)
    dic = {}
    for i in range(1,len(the_list)+1):
        dic[i] = the_list[i-1]
    new_list = []
    for a in dic:
        if dic[a] == min(the_list):
            dic[a] += num
        elif dic[a] == max(the_list):
            dic[a] -= num
        new_list.append(dic[a])
    print(new_list)

if __name__ == '__main__':
    the_list = [3,4,2,1,6,10,7,8]
    test12(the_list)

>>> [3, 4, 2, 10, 6, 1, 7, 8]

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
新手·ing + 2 + 2

查看全部评分

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

使用道具 举报

发表于 2017-4-6 17:12:43 | 显示全部楼层
谢谢楼主,一起来学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-6 17:20:11 | 显示全部楼层
cix123 发表于 2017-4-6 17:12
谢谢楼主,一起来学习

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

使用道具 举报

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

使用道具 举报

发表于 2017-4-10 15:05:37 | 显示全部楼层
def func():
    print('请输入多个数字,以#键结束输入,每次只允许输入一个数字')
    arr = []
    while True:
        para = input('请输入数字:')
        if para == '#':
            break
        else:
            try:
                num = int(para)
            except ValueError:
                num = float(para)
            arr.append(num)
    print('数组为:',arr)
    maxnum = max(arr)
    minnum = min(arr)
    maxindex = arr.index(maxnum)
    minindex = arr.index(minnum)
    arr[0],arr[maxindex] = arr[maxindex],arr[0]
    arr[-1],arr[minindex] = arr[minindex],arr[-1]
    print('新的数组为:',arr)
    
func()
0 0最近有点忙都没时间去做题

点评

我很赞同!: 5.0
我很赞同!: 5
谢谢支持~恭喜最佳到103了~  发表于 2017-4-10 17:43
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-10 15:51:48 From FishC Mobile | 显示全部楼层
结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-10 17:11:10 From FishC Mobile | 显示全部楼层
也写了一个。不知道是不是楼主题目的意思
image.jpg

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
新手·ing + 3 + 3 支持楼主!

查看全部评分

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

使用道具 举报

发表于 2017-4-10 17:16:19 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-11 13:16:27 | 显示全部楼层
芝麻开门
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-11 16:52:17 | 显示全部楼层
a=[1,2,3,5436,4,5,6,7,8,0,452,542,54]
x=a.index(max(a))
i=a.index(min(a))
a[0],a[x]=a[x],a[0]
a[-1],a[i]=a[i],a[-1]
print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-4-11 16:53:12 | 显示全部楼层

大兄弟,没鱼币了...
对了,要不要一起搞这个淘专辑
你有题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-11 16:53:12 | 显示全部楼层

大兄弟,没鱼币了...
对了,要不要一起搞这个淘专辑
你有题吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-11 18:04:24 | 显示全部楼层
新手·ing 发表于 2017-4-11 16:53
大兄弟,没鱼币了...
对了,要不要一起搞这个淘专辑
你有题吗

工作之余,进来做做,没去其他地方找过这类题目,所以很感谢你们的分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 06:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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