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

问题描述 投票:0回答:1

我遇到一个问题,要求我接受用户输入并返回该值或高于该值(最多 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()

我对如何接受用户输入并让它从上面的数据列表中选择成绩范围或部分编号感到困惑。

list python-3.x call range threshold
1个回答
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)

当每个项目中的项目很少时,第二种解决方案被认为更惯用,这是首选,因为更清楚项目的组成。

© www.soinside.com 2019 - 2024. All rights reserved.