如何使用输入在排序的嵌套列表中查找某些值



所以现在我有一个嵌套的列表,我已经排序使用冒泡排序。代码看起来像这样:

def bubbleTop5(bad_list):
    length = len(bad_list) - 1
    sorted = False
    while not sorted:
        sorted = True
        for i in range(length):
            if bad_list[i][1] <= bad_list[i+1][1]:
                sorted = False
                bad_list[i], bad_list[i+1] = bad_list[i+1], bad_list[i]

这将根据[1]元素对列表进行排序,并打印出类似于下面的列表:

[['California', 4964, 76, 22], ['Texas', 3979, 62, 23], ['New York', 1858, 69, 20], ['Virginia', 1655, 60, 19], ['Maryland', 1629, 66, 20]]

现在,我要做的是让用户为这些列表中的[3]元素输入一个数字,并且只显示那些带有该值的状态。所以如果我输入7,那么它只会在[3]元素中显示值为7或更高的状态。任何帮助都是感激的:)

试试这个:

n = int(raw_input("Enter search value: "))
result = [x for x in sorted_list if x[3] >= n]

还要注意,您的排序可以通过

来实现
sorted_list.sort(key=lambda x: x[1])

对于一个大列表,这通常会比用Python编写的冒泡排序快得多。

可以对列表进行排序

 badlist=sorted(bad_list,key=lambda x :x[1])  

n = int(raw_input("输入搜索值"))以输入为例,你可以过滤大于input元素

的元素
result = filter(lambda x : x[3] >=n,sorted_list)

您可以使用raw_input来获取输入,并使用列表推导式来获取结果:

key = int(raw_input("Enter a number: "))
result = [e for e in bad_list if e[3] >= key]

注意,raw_input将返回一个字符串,因此您应该使用int(...)将其转换为整数

相关内容

  • 没有找到相关文章

最新更新