как вызывать части списков в заданном диапазоне

У меня есть проблема, которая требует, чтобы я принимал ввод пользователя и возвращал все элементы этого значения или выше этого значения до 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()

Я в тупике от того, как я мог бы принять ввод пользователей и выбрать диапазон оценок или номера разделов из списка данных, которые у меня есть выше. Помогите мне, пожалуйста.


person spenman    schedule 19.11.2012    source источник
comment
Вы можете начать с правильного отступа вашего примера кода. Как вы знаете, отступы являются частью синтаксиса Python.   -  person Pedro Romano    schedule 20.11.2012


Ответы (1)


Вам нужно перебрать элементы. Например:

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)

Это второе решение считается более идиоматичным, когда у вас есть несколько элементов в каждом элементе, оно предпочтительнее, потому что более ясно, из чего состоят элементы.

Если это домашнее задание, я думаю, вы можете закончить отсюда.

person BoppreH    schedule 20.11.2012