首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python列表理解中使用带有if/elif语句的'for‘循环

在Python列表理解中使用带有if/elif语句的'for‘循环
EN

Stack Overflow用户
提问于 2019-06-26 04:31:41
回答 1查看 769关注 0票数 2

我正在尝试将这个for循环转换为一个列表理解:

代码语言:javascript
复制
a = [1,2,3,4,5,6,7,8,9]
result = []
for i in a:
    if i <= 3:
        result.append(1)
    elif i > 4 and i < 7:
        result.append(2)

我已经试过了

代码语言:javascript
复制
[1 if i <= 3 else 2 if i > 3 and i < 7 for i in a]

它抱怨说

代码语言:javascript
复制
File "<ipython-input-155-eebf07a9e0d8>", line 2
    [1 if i <= 3 else 2 if i > 3 and i < 7 for i in a]
                                             ^
SyntaxError: invalid syntax
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-26 04:35:08

列表理解:

添加更多条件:D (不,这真的很混乱)

代码语言:javascript
复制
[
    1 if i <= 3 else 2
    for i in a
    if i != 4 and i < 7
]

我们怎么来到这儿的?

基本列表组件:[EXPRESSION for TARGET in ITERABLE if CONDITION]

三元表达式:(IF_TRUE if CONDITION else IF_FALSE)

  1. 获取for循环。足够简单的for i in a.
  2. Add条件,可以过滤掉将被忽略的项目。一旦它通过了CONDITION,在列表中的那个位置就必须有一个项目。在这种情况下,如果它是4或大于7,我们不想要i。在本例中,如果i小于或等于4,我们需要1。否则,我们将采用2. 1 if i <= 3 else 2。注意:这是一个三元表达式。快来看看!
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56761611

复制
相关文章

相似问题

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