[英]What would be equivalent to this list comprehension?
清單理解:
def getBiggerNumber(input_number, generated_number):
return [x for x in generated_number if x > input_number]
列表理解的結果:
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]
這段代碼就是我試圖獲得與上面相同的結果的代碼。
for x in generated_number:
if x > input_number:
print(x)
我從中得到的結果是:
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
如您所見,一步一步
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]))
您正在按> 10進行過濾,列表理解只是它的語法糖
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:
[66, 100]
[66, 100]
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.