当前位置:  开发笔记 > 编程语言 > 正文

将零添加到列表中

如何解决《将零添加到列表中》经验,为你挑选了1个好方法。



1> Willem Van O..:

它返回的原因None仅仅是因为你的return语句缺少一个表达式:

elif len(value) == 8:
    return

因此return只是意味着:" 我们已经完成,停止执行此功能,不应返回任何内容 ".

此外,并非所有代码路径都会执行返回语句.最后,你AddZero似乎只添加一个零,这可能是低效的.

更好的解决方案可能是:

def Addzero(value):
    return [0] * max(0,8-len(value)) + value

这里的表达式[0]*n意味着您在列表中重复0 n次.所以[0]*4会导致[0,0,0,0].现在我们需要添加它的次数是max(0,8-len(value)).该max(0,...)其实甚至没有必要的,这样你就可以把它改写为:

def Addzero(value):
    return [0] * (8-len(value)) + value

因此,这意味着我们必须缩短以生成八个项目列表的元素的数量被构造为零列表.我们添加(追加)+原始列表.

正如@ Later42在他的回答中所示,你可以通过len先检查来提高效率,如果它等于8,则返回列表本身:

def Addzero(value):
    if(len(value) > 8) :
        return value
    else :
        return [0] * (8-len(value)) + value

使用Python的交互式shell进行演示:

$ python
Python 2.7.9 (default, Apr  2 2015, 15:33:21) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def Addzero(value):
...     return [0] * (8-len(value)) + value
... 
>>> Addzero([1, 0, 1, 1, 0, 1])
[0, 0, 1, 0, 1, 1, 0, 1]

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有