首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python列表理解:在if else语句中赋值

Python列表理解:在if else语句中赋值
EN

Stack Overflow用户
提问于 2018-07-13 13:36:24
回答 4查看 268关注 0票数 0

我正在尝试用python为下面的for循环写一个列表理解

代码语言:javascript
复制
num_list = []

for num in range(10):
if num % 2 == 0:
    num_list.append('EVEN')
else:
    num_list.append('ODD')

我写了一些类似这样的东西

代码语言:javascript
复制
[num if num % 2 == 0  'EVEN' else 'ODD' for num in range(10)]

代码语言:javascript
复制
[num if num % 2 == 0  then 'EVEN' else 'ODD' for num in range(10)]

但两者都给出了语法错误,并且都是无效的。

我刚接触pyhton,所以不确定这能否转化为一种理解。任何帮助都将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-13 13:38:10

三元表达式的工作方式略有不同:

代码语言:javascript
复制
['EVEN' if num % 2 == 0 else 'ODD' for num in range(10)]

尽管我认为

代码语言:javascript
复制
['ODD' if num % 2 else 'EVEN' for num in range(10)]

看起来好多了。

这样想:

代码语言:javascript
复制
[('ODD' if num % 2 else 'EVEN') for num in range(10)]

方括号可以用于澄清,但它们不是必需的,并且可能会使人们认为您正在构建元组或生成器表达式。

票数 2
EN

Stack Overflow用户

发布于 2018-07-13 13:39:00

它应该是:

代码语言:javascript
复制
>>> ['EVEN' if num%2 == 0 else 'ODD' for num in range(10)]

#驱动器值

代码语言:javascript
复制
OUT : ['EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD', 'EVEN', 'ODD']
票数 0
EN

Stack Overflow用户

发布于 2018-07-13 14:01:42

代码语言:javascript
复制
['EVEN' if num % 2 == 0 else 'ODD' for num in range(10)]

因此,理想情况下,我们需要返回或推入列表的内容是从列表理解开始的地方。让我们试着从你的for循环构建它-

代码语言:javascript
复制
num_list = []

for num in range(10):            #  for num in range(10) (third part)
    if num % 2 == 0:
        num_list.append('EVEN')  # 'EVEN' if num % 2 == 0 (first part)
    else:
        num_list.append('ODD')   #  else 'ODD' (second part)

你可以看看this来了解更多的列表理解。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51318246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档