鱼C论坛

 找回密码
 立即注册
查看: 21659|回复: 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 编辑
  1. import random

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

  4. 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))]
  5. print(temp)
复制代码


其实只需要一句!

输出
  1. [69, 35, 51, 29, 58, 3, 16, 53, 90, 28]
  2. [90, 35, 51, 29, 58, 28, 16, 53, 69, 3]
复制代码



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

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

  2. counts = 100
  3. while counts:
  4.     temp = [random.randint(1, 100) for i in range(10)]
  5.     total = sum(temp)
  6.     print(temp)
  7.    
  8.     temp[temp.index(max(temp))], temp[0] = temp[0], temp[temp.index(max(temp))]
  9.     temp[temp.index(min(temp))], temp[-1] = temp[-1], temp[temp.index(min(temp))]
  10.     print(temp)
  11.     if total != sum(temp):
  12.         print('There is something wrong!')
  13.         break
  14.     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 | 显示全部楼层
没有想到更好的写法。
  1. lst = [int(i) for i in input('请输入一组数字,用空格隔开: ').split(' ')]
  2. print(lst)
  3. maxx = max(lst)
  4. minn = min(lst)
  5. lst[lst.index(maxx)], lst[0] = lst[0], lst[lst.index(maxx)]
  6. lst[-1], lst[lst.index(minn)] = lst[lst.index(minn)], lst[-1]
  7. 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 | 显示全部楼层
我也写了一个:
我发现我做你的这些题目,大部分试试在使用字典格式的数据啊,只要有按照一定顺序的,我都把数据放在字典里面操作完之后在变成需要的格式
  1. def test12(the_list):
  2.     num = max(the_list)-min(the_list)
  3.     dic = {}
  4.     for i in range(1,len(the_list)+1):
  5.         dic[i] = the_list[i-1]
  6.     new_list = []
  7.     for a in dic:
  8.         if dic[a] == min(the_list):
  9.             dic[a] += num
  10.         elif dic[a] == max(the_list):
  11.             dic[a] -= num
  12.         new_list.append(dic[a])
  13.     print(new_list)

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

  17. >>> [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 | 显示全部楼层
  1. def func():
  2.     print('请输入多个数字,以#键结束输入,每次只允许输入一个数字')
  3.     arr = []
  4.     while True:
  5.         para = input('请输入数字:')
  6.         if para == '#':
  7.             break
  8.         else:
  9.             try:
  10.                 num = int(para)
  11.             except ValueError:
  12.                 num = float(para)
  13.             arr.append(num)
  14.     print('数组为:',arr)
  15.     maxnum = max(arr)
  16.     minnum = min(arr)
  17.     maxindex = arr.index(maxnum)
  18.     minindex = arr.index(minnum)
  19.     arr[0],arr[maxindex] = arr[maxindex],arr[0]
  20.     arr[-1],arr[minindex] = arr[minindex],arr[-1]
  21.     print('新的数组为:',arr)
  22.    
  23. 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 | 显示全部楼层
  1. a=[1,2,3,5436,4,5,6,7,8,0,452,542,54]
  2. x=a.index(max(a))
  3. i=a.index(min(a))
  4. a[0],a[x]=a[x],a[0]
  5. a[-1],a[i]=a[i],a[-1]
  6. 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-4-16 23:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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