简体   繁体   English

相当于这个列表理解是什么?

[英]What would be equivalent to this list comprehension?

The list comprehension: 清单理解:

def getBiggerNumber(input_number, generated_number):    
         return [x for x in generated_number if x > input_number]

The results from the list comprehension: 列表理解的结果:

Generated Numbers : [7, 9, 14, 18, 27, 41, 44, 46, 54, 55, 57, 57, 57, 64, 65, 81, 82, 82, 83, 95]
Enter a number 1-100: 44
Your number: 44
Numbers greater than 44 : [46, 54, 55, 57, 57, 57, 64, 65, 81, 82, 82, 83, 95]

This code is what I tried to get the same result as the above. 这段代码就是我试图获得与上面相同的结果的代码。

for x in generated_number:
     if x > input_number:
          print(x)

The results I get from this is: 我从中得到的结果是:

Random Numbers : [6, 12, 17, 24, 25, 26, 40, 43, 44, 45, 50, 51, 62, 65, 72, 75, 77, 91, 93, 98]
Please enter a number 1 through 100: 66
Your number is : 66
72
75
77
91
93
98
72
75
77
91
93
98
Numbers greater than 66 : None

As you can see, step by step 如您所见,一步一步

def doThing(input_number,generated_number):
  return [x for x in generated_number if x > input_number]

print(doThing(10,[100,10,20,40]))

def doSameThing(input_number,generated_number):
  res = []
  for x in generated_number:
    if x > 10:
      res.append(x)

  return res

print(doSameThing(10,[100,10,20,40]))

You are making a filter by >10, list comprehension is just syntactic sugar of it 您正在按> 10进行过滤,列表理解只是它的语法糖

Equivalent of list comprehensions 等同于列表理解

def getBiggerNumber(input_number, generated_number):
    return [x for x in generated_number if x > input_number]

print(getBiggerNumber(44, [20, 66, 100]))


def same(xnum, ylist, lst=[]):
    for x in ylist:
        if x > xnum:
            lst.append(x)
    return lst

print(same(44, [20, 66, 100]))

OUTPUT: OUTPUT:

[66, 100]
[66, 100]
>>> 

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

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