列表理解与可迭代. Python新手
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了列表理解与可迭代. Python新手,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1820字,纯文字阅读大概需要3分钟。
内容图文
![列表理解与可迭代. Python新手](/upload/InfoBanner/zyjiaocheng/734/8fc46eff93ee455ebd75f8f76c683367.jpg)
说我有一个数组:
array=[1,0,2,3,4,0,0,5,6,0]
我想要一个只返回数字而不是零的列表.所以我做了这个,它的工作原理:
print(list(y for y in array if y!=0)
我尝试了另一种没有列表理解的方法,它不起作用,有人可以解释为什么吗?
for y in array:
if y!=0:
print(list(y))
什么是另一种方法来打印没有0的数字列表?
编辑:我尝试使用for循环来解决这个问题,如果我在顶部创建一个空列表,它就可以工作.它有效,但我不明白为什么!但为什么这个工作而另一个不工作呢?什么更有效,这个或列表理解在速度/内存方面?
array=[1,0,2,3,4,0,0,5,6,0]
list=[]
for y in array:
if y!=0:
list.append(y)
print(list)
解决方法:
让我们好好看看你认为是对的:
for y in array:
if y!=0:
print(list(y))
所以我们遍历数组中的每个值.如果该值不为零,则打印列表(y).问题从这里开始.因为y是整数,所以list(y)返回错误,因为您无法将整数转换为列表.如果你打印(y)它会工作.
但接下来是另一个问题.如果我们打印列表中不是零的每个元素,我们得到类似的东西,因为该代码只会按顺序打印:
1
2
3
4
5
6
你在问题中说明你想要一个清单.所以这段代码也行不通,因为没有存储列表.所以我们终于找到了正确的答案:
array=[1,0,2,3,4,0,0,5,6,0]
list=[]
for y in array:
if y!=0:
list.append(y)
print(list)
此答案在列表中存储每个不为零的y值,然后最终打印出列表.
编辑:
这就是列表理解的工作原理:
首先,我不禁发现你发了一个语法错误. :P你忘记了一个结束的parantheses!这是正确的代码:
print(list(如果y!= 0,则y为数组中的y)).
其次,我需要说明这不是一个列表的综合.那是一台发电机.差别很小.
列表理解会在现场生成列表.列表理解看起来像这样:[如果y!= 0,则y为数组中的y]
您在上面使用的生成器是一个存储表达式.它看起来像这样:如果y!= 0,则y表示y.
因此,如果y!= 0,而不是使用list(y为数组中的y,如果y!= 0,则可以直接转到[y for y in array].
所以现在我将解释“列表理解”(生成器表达式)实际上是如何工作的.它首先循环遍历数组的每个值.它检查值是否不为零.如果不是,则将y添加到输出列表中.所以基本上,生成器表达式与带有for循环的第二个工作代码相同,除了python为你创建输出列表,增加了一些便利.
内容总结
以上是互联网集市为您收集整理的列表理解与可迭代. Python新手全部内容,希望文章能够帮你解决列表理解与可迭代. Python新手所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。