所以现在我有一个嵌套的列表,我已经排序使用冒泡排序。代码看起来像这样:
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(...)
将其转换为整数。