Как связать входную переменную с именем списка?

#python #list #input

#python #Список #ввод

Вопрос:

 #my simple code
i_sm = input("Enter Scale (Major or Minor): ")
Major = [root,W,W,H,W,W,W]
Minor = [root,W,H,W,W,H,W]
print(i_sm)
 

Я хотел бы связать входную переменную i_sm со списком Major или Minor и напечатать ее содержимое, например, пользовательский ввод «Major» приведет к выводу root,W,W,H,W,W,W .
Однако генерируемый результат является «Основным». Как я могу получить фактический список для печати?

Комментарии:

1. Храните свои списки в словаре, используя название шкалы.

Ответ №1:

Вот пример того, как это сделать.

Вы можете хранить списки значений , например ['Mustang', 'Focus'] , связанных с определенным ключом , например 'ford' . Позже вы можете получить список значений для данного ключа, используя cars['ford'] или cars['tesla'] или cars[choice.lower()] , если choice это было значение, введенное пользователем.

 cars = {
    'ford': ['Mustang', 'Focus'],
    'tesla': ['Model 3', 'Model S']
}

choice = input("Enter manufacturer (Ford or Tesla): ")

try:
    print(cars[choice.lower()])
except KeyError:
    print('Error: choose Ford or Tesla')
 

Обратите внимание, что я преобразовал входное значение в нижний регистр, чтобы пользователям не приходилось быть слишком точными — они могут ввести Ford , ford , FORD и все будет работать.

Ответ №2:

Все, что вам нужно, это словарь Python

https://www.w3schools.com/python/python_dictionaries.asp

 i_sm = input("Enter Scale (Major or Minor): ")

Major = ["root","W","W","H","W","W","W"]
Minor = ["root","W","H","W","W","H","W"]

aDict = { "Major": Major, "Minor": Minor}


print( aDict[i_sm] ) 
 

Комментарии:

1. Спасибо — это сработало легко! И спасибо за ссылку — очень полезно!