如何使用List推导来比较和移除嵌套列表的第二个元素?

2024-10-03 00:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我有一个嵌套列表,并希望根据条件匹配比较和删除嵌套列表中的列表。你知道吗

这是我的密码:

def secondValue(val):
    return val[1]


if __name__ == '__main__':
    nestedList=[]
    for _ in range(int(input())):
        name = input()
        score = float(input())
        nestedList.append([name,score]) # Made a nested list from the input 
    lowestMarks=min(nestedList,key=secondValue) [1]  #Extracting the minimum score 
    newList=[x for x in nestedList[1] if x!=lowestMarks] # PROBLEM HERE

代码的最后一行是根据条件匹配删除嵌套列表中的列表的位置。当然,我可以用嵌套for循环来实现这一点,但是如果有一种方法可以使用列表理解来实现这一点,我会考虑这种方法。你知道吗

基本上,如果能给出一个答案,告诉我如何根据条件从嵌套列表中删除列表,我将不胜感激。在我的例子中,列表如下所示:

[[test,23],[test2,44],......,[testn,23]] 

Tags: the方法namein密码列表forinput
2条回答

错误在下线,现在已修复。你知道吗

newList=[x for x in nestedList if x[1] != lowestMarks] # PROBLEM HERE

nestedList[1]获取第二个子列表。您希望遍历整个列表。你知道吗

问题

  • for x in nestedList[1]只是迭代嵌套列表的第二个子列表。

  • x是一个子列表,它永远不能等于lowestMarks

使用列表:

newList = [[x, y] for x, y in nestedList if y != lowestMarks]

相关问题 更多 >