繁体   English   中英

我试图通过列表理解找出下面显示的结果:

[英]I am trying to find out the result shown below with list comprehension:

我试图通过列表理解找出下面显示的结果:

def X(numbers):
    result = []
    for i in numbers:
        if i > 5:
            result.append('higher')
        else:
            result.append('lower')
        
    return result

numbers=[8,3,7]
assignment_02a(numbers)

答案: ['higher', 'lower', 'higher']

我试过这段代码:

[i>5 for i in range(4,8) ]

我得到了这个: [False, False, True, True]

我希望 output 为: ['lower', 'lower', 'higher', 'higher']

如果您仔细阅读,请参阅那里的链接,您可以找到解决此问题的方法。

number = [8,3,7]
numbers = ["Higher" if i>=5 else "Lower" for i in number]
print(numbers)

Output: ['Higher', 'Lower', 'Higher']

或者按照您的要求使用范围:

numbers = ["Higher" if i>5 else "Lower" for i in range(4,8)]
print(numbers)

Output: ['Lower', 'Lower', 'Higher', 'Higher']

好吧,您的列表比较 function 仅对更高/更低进行测试,但不替代结果。 您可以通过多种方式做到这一点,但为了符合事物的精神,您可以将字符串从 map 中移开。

[{True: "Higher", False: "Lower"}[i>5] for i in range(4,8)]

您可以使用map function 和lambda来获得幻想,但这应该说明这个想法。

[{True:'higher', Talse:'lower'}[i>5] for i in range(4,8)]

如果您得到TrueFalse ,那么只需将这些值与字典一起使用。 这意味着:

  • 如果 i > 5 然后查看 dict 并发现True返回'higher'
  • 如果 i < 5 然后查看 dict 并发现False返回'lower'

[i>5 for i in range(4,8) ]返回是否i > 5 如果我们使用 dict 那么True'higher'相关,因此我们将其返回,而False'lower'相关,因此我们将其返回。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM