如何调用给定范围内的部分列表

时间:2012-11-19 22:59:40

标签: list python-3.x call range threshold

我遇到一个问题,要求我接受用户输入并返回该值或高于该值的所有项目,最多100个

我向用户询问他希望从我拥有的一组数据中看到什么等级。

所以我会让用户输入成绩,我将返回该等级或更高级别的所有人的记录。

这是我到目前为止所拥有的

从中提取的一小部分数据样本

 ['Bud', 'Abbott', 51, 92.3]
 ['Don', 'Adams', 51, 90.4]
 ['Mary', 'Boyd', 52, 91.4]
 ['Jill', 'Carney', 53, 76.3]
 ['Hillary', 'Clinton', 50, 82.1]
 ['Randy', 'Newman', 50, 41.2]

到目前为止,我的代码只是一些if和elif语句,确保用户输入正确的函数。 此功能将起作用,如果用户输入字母g,程序将询问等级阈值,然后将返回该等级及以上的任何数据行。

例如,如果我是用户,我输入g然后输入90 我只会回到这三行

 ['Bud', 'Abbott', 51, 92.3]
 ['Don', 'Adams', 51, 90.4]
 ['Mary', 'Boyd', 52, 91.4]

此外,如果用户输入字母S,它会找到该部分的记录,并返回该部分中的所有学生 因此,如果用户输入s然后输入50,程序将返回

 ['Hillary', 'Clinton', 50, 82.1]
 ['Randy', 'Newman', 50, 41.2]

我到目前为止编写的代码看起来像这样

def Query ():
    input("enter query type (g or s):")
    #checks user's input and takes user to grades
    if (operator == "g"):
        print("You have chosen to query Grades")
    GradeThreshold=input("enter the Grade threshold:")


    #checks user's input and takes user to section 
    elif (operator == "s"):
         print("You have chosen to query Section")
    SectionNumber=input("enter the section:")


    elif (operator != "g") and (operator != "s"):
          print("Invalid entry. Please re-enter the operation from above.")
    return()

我很难理解我如何接受用户输入并让我从上面的数据列表中选择等级范围或部分编号。请帮帮我。

1 个答案:

答案 0 :(得分:0)

您需要迭代这些项目。例如:

items = [['Bud', 'Abbott', 51, 92.3],
         ['Don', 'Adams', 51, 90.4],
         ['Mary', 'Boyd', 52, 91.4],
         ['Jill', 'Carney', 53, 76.3],
         ['Hillary', 'Clinton', 50, 82.1],
         ['Randy', 'Newman', 50, 41.2]]

for item in items:
    print(item)

这将按顺序打印所有项目。要从项中获取值,您需要使用括号通过索引访问它:

for item in items:
    print item[2] # Prints the 3rd element in item (because indexes start at 0)

或在迭代时解压缩项目:

for first_name, last_name, some_integer, grade in items:
    print('Name:', first_name, last_name)
    print('Grade:', grade)

如果每个项目中的项目很少,则第二个解决方案被视为更多惯用,这是首选,因为项目的组成更清晰。

假设它是家庭作业,我想你可以从这里完成。