通过列表列表排序?
Sorting through list of lists?
所以我有一个列表列表:
nums = [[98, 90, 91], [46, 76, 62], [85, 90, 83], [77, 79, 81]]
我想对它们进行分类。当
的列表(迷你列表)中的数字
list(main list) 低于我在参数中给出的默认值,函数
将 return 列表中的每个列表都包含 true 或 false。
示例:[对、错、对、对]
到目前为止,这是我的代码:
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
每次我 运行 代码,我的输出都是一个空列表。
编辑:我修复了一些问题,现在我离我的解决方案越来越近了,但它是 returning True 或者
列表列表中的每个值都为假。我如何使它只有 returns True 或
对于单个列表为 False。
示例:[98, 90, 91] 将设置为 True。 [46, 76, 62] 将被设置为 False
因为列表中的 x 小于 70。其他列表也是如此。
编辑:我开始工作了,我将附加行缩进到与第二个 for 循环相同的缩进,现在我明白它是如何工作的了。谢谢!!!
我能做的最短时间:
def all_passing(nums, grade = 70):
return [ [ True if elel > grade else False for elel in el ] for el in nums ]
但是如果你想让它 return 只有一个列表(我不确定我是否得到你的要求)并且对迷你列表的结果进行 True of False 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]
,和你预期的差不多。
您的代码中存在的问题是:
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
所以我有一个列表列表:
nums = [[98, 90, 91], [46, 76, 62], [85, 90, 83], [77, 79, 81]]
我想对它们进行分类。当
的列表(迷你列表)中的数字list(main list) 低于我在参数中给出的默认值,函数
将 return 列表中的每个列表都包含 true 或 false。
示例:[对、错、对、对]
到目前为止,这是我的代码:
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
每次我 运行 代码,我的输出都是一个空列表。
编辑:我修复了一些问题,现在我离我的解决方案越来越近了,但它是 returning True 或者 列表列表中的每个值都为假。我如何使它只有 returns True 或 对于单个列表为 False。 示例:[98, 90, 91] 将设置为 True。 [46, 76, 62] 将被设置为 False 因为列表中的 x 小于 70。其他列表也是如此。
编辑:我开始工作了,我将附加行缩进到与第二个 for 循环相同的缩进,现在我明白它是如何工作的了。谢谢!!!
我能做的最短时间:
def all_passing(nums, grade = 70):
return [ [ True if elel > grade else False for elel in el ] for el in nums ]
但是如果你想让它 return 只有一个列表(我不确定我是否得到你的要求)并且对迷你列表的结果进行 True of False 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]
,和你预期的差不多。
您的代码中存在的问题是:
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