鱼C论坛

 找回密码
 立即注册
查看: 1094|回复: 5

[已解决]怎么在定义一个方法,方法中定义一个列表转换成要输出的样式

[复制链接]
头像被屏蔽
发表于 2018-5-11 20:29:15 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-11 20:39:25 | 显示全部楼层    本楼为最佳答案   
result = [] #肯定是要放外面,要不就传参数进去
def get_digit(s):
    if s:
         result.append(s%10)
         return get_digit(s//10)
    else:
        result.reverse()
        return result
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-11 20:45:03 From FishC Mobile | 显示全部楼层
本帖最后由 DevenVan 于 2018-5-11 21:47 编辑

刚刚犯了2个错,没注意传入的类型,以为结果要排序
如果是传入一个 int 类型:
def get(s):
        return [int(n) for n in str(s)] if s else None

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-11 21:25:26 | 显示全部楼层
DevenVan 发表于 2018-5-11 20:45
直接用列表推导式,简单明了
def get(s):
    return .sort() if s else None

人家是要按照数字位数放置。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-12 09:10:59 From FishC Mobile | 显示全部楼层
函数写的有问题,函数就没有调用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-12 10:29:39 | 显示全部楼层
  1. result = [] #需要放外面,否则,每一次递归都会重新将result赋值为 空列表
  2. def get_digit(s):
  3.        #result = []
  4.         if s:
  5.              result.append(s%10)
  6.              print(result)
  7.              return get_digit(s//10)
  8.         else:
  9.             result.reverse()
  10.             return result
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-12 03:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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