鱼C论坛

 找回密码
 立即注册
查看: 6568|回复: 11

[已解决]这个代码怎么写啊大神们

[复制链接]
发表于 2016-9-25 21:37:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 李二瓶 于 2016-9-25 22:51 编辑

我刚刚学到python零基础14课,遇到了这样一道题不知道怎么写。
题目是:
输入一个带有数字的字符串后,根据数字从大到小将字符串排列,并且数字只代表位置而不出现在打印的结果中。
例如我输入“is2,,t1his,boy4,a3”就会打印“this is a boy”
最佳答案
2016-9-26 19:42:42
本帖最后由 void°念 于 2016-9-26 19:43 编辑
  1. result = {}


  2. def MySort(args):
  3.     for each in range(len(args)):
  4.         for i in range(len(args[each])):
  5.             if args[each][i].isdigit():
  6.                 result[args[each][i]] = args[each][0:i] + args[each][i + 1:]

  7.     for i in range(len(result) + 1):
  8.         if result.get(str(i)):
  9.             print(result[str(i)], end=" ")

  10. inputString = input("请输入字符串:")
  11. inputList = inputString.split(",")
  12. MySort(inputList)

  13. #胡乱写的 因为题目条件不是很明确 所以写的不是很严谨
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 19:42:42 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +20 鱼币

本帖最后由 void°念 于 2016-9-26 19:43 编辑
  1. result = {}


  2. def MySort(args):
  3.     for each in range(len(args)):
  4.         for i in range(len(args[each])):
  5.             if args[each][i].isdigit():
  6.                 result[args[each][i]] = args[each][0:i] + args[each][i + 1:]

  7.     for i in range(len(result) + 1):
  8.         if result.get(str(i)):
  9.             print(result[str(i)], end=" ")

  10. inputString = input("请输入字符串:")
  11. inputList = inputString.split(",")
  12. MySort(inputList)

  13. #胡乱写的 因为题目条件不是很明确 所以写的不是很严谨
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-26 22:40:14 | 显示全部楼层
print("this is a boy")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-28 19:09:24 | 显示全部楼层

这个办法简单粗暴
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-7 20:47:04 | 显示全部楼层

这个能讲解一下嘛....
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-9 22:12:22 | 显示全部楼层

能不能请你说说这个代码的思路??思路不好说的话说说步骤的作用好了/感激脸
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-10 12:25:09 | 显示全部楼层
李二瓶 发表于 2016-10-9 22:12
能不能请你说说这个代码的思路??思路不好说的话说说步骤的作用好了/感激脸

没什么特别思路 就是按题目要求来
首先按逗号把字符串分开,然后每个单词里遍历找到数字 把除数字之外的部分和这个数字一起存在字典里,数字是键 单词是值  最后把字典里内容输出

不过我这边比较简单 默认输入格式是按逗号分割  然后每个单词只有一个数字  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-10-10 13:48:58 | 显示全部楼层
我的方法:
  1. str1 = 'is2,,t1his,boy4,a3'
  2. list1 = str1.split(',')
  3. list2 =[]
  4. for i in range(len(list1)):
  5.     for each in list1:

  6.         if str(i + 1) in each:

  7.             list2.append(each.replace(str(i + 1), ''))
  8.             list1.remove(each)
  9.             break
  10. print(' '.join(list2))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 22:46:13 | 显示全部楼层

我刚刚测试了一下,然后发现只能是this is a boy 这个字符串可以实现,但是这个只是我举的一个例子喔~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-10 22:59:54 | 显示全部楼层
李二瓶 发表于 2016-10-10 22:46
我刚刚测试了一下,然后发现只能是this is a boy 这个字符串可以实现,但是这个只是我举的一个例子喔~

字符串要求是英文逗号隔开,当然也可修改程序使用中文逗号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 23:25:16 | 显示全部楼层
冬雪雪冬 发表于 2016-10-10 22:59
字符串要求是英文逗号隔开,当然也可修改程序使用中文逗号

恩啊~我的意思是输入任意带有数字的语句都能像我举出的例子一样实现排序功能
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-11 09:09:34 | 显示全部楼层
李二瓶 发表于 2016-10-10 23:25
恩啊~我的意思是输入任意带有数字的语句都能像我举出的例子一样实现排序功能

你是说用input语句吗,把第一行改为:str1 = input('请输入字符串:')
  1. 请输入字符串:is2,pow3er,1Knowledge
  2. Knowledge is power
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-13 11:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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