所以我有一份清单清单:
nums = [[98,90,91],[46,76,62],[85,90,83],[77,79,81]]
我希望对它们进行整理。
列表中的数字(迷你列表)list(主列表)低于我在参数中给出的默认值,函数
将为列表中的每个列表返回一个包含true或false的列表。
示例:[True,False,True,True]
到目前为止,这是我的代码:
def all_passing(nums, grade = 70):
new = []
for l in nums:
boo = True
for x in l:
if x <= grade:
boo == False
new.append(boo)
return new
每次运行代码时,我的输出都是一个空列表。
编辑:我修复了一些问题,现在我越来越接近我的解决方案,但它返回True或者 列表列表中的每个值都为假。如何使它只返回True或 单个列表为假。 示例:[98,90,91]将设置为True。 [46,76,62]将设置为False 因为列表中的x小于70.其他列表也是如此。
编辑:我开始工作,我将附加行缩进到第二个for循环的相同缩进,现在我理解它是如何工作的。谢谢!!!
答案 0 :(得分:0)
我能做的最短:
def all_passing(nums, grade = 70):
return [ [ True if elel > grade else False for elel in el ] for el in nums ]
但是如果你想让它只返回一个列表(我不确定我是否得到你所要求的),并且对迷你列表的结果使用了真假的dedending,那么我会做
def all_passing(nums, grade = 70):
ans = [ [ True if elel > grade else False for elel in el ] for el in nums ]
return [ False if False in el else True for el in ans ]
第二个例子给了我[True, False, True, True]
,类似于你的预期。
答案 1 :(得分:0)
您的代码中的问题是:
boo == False
正在测试boo是否等于false。将其更改为boo = False
,将boo
设置为False
new.append(boo)
时才会调用x <= grade
。将其移至if
语句和for x in l
您的最终代码应为:
def all_passing(nums, grade = 70):
new = []
for l in nums:
boo = True
for x in l:
if x <= grade:
boo = False
new.append(boo)
return new