#python #list
#python #Список
Вопрос:
Я смог найти много информации о выборе значения из списка, но я хочу выбрать список из значения, содержащегося в нем. Проблема в том, что я не хочу, чтобы это было так многословно, как выполнение множества «если«, поскольку это излишне.
Есть ли способ использовать значение для печати всего списка? Это поможет мне в последующих уроках по вычислению. Я уже должен был знать это по предыдущим годам, хотя из-за характера моего курса мои коллеги могут этого не знать.
Это соответствующий код:
Doggo_Database = [['Lilly', 'Jack Russell', 'White', 'F', 2009, 'Medium'],
['Winston', 'Pug', 'Brown', 'M', 2010, 'Small'],
['Bo', 'Doberman', 'Brown', 'M', 2011, 'Large'],
['Shep', 'Border Collie', 'Black', 'M', 2006, 'Large'],
['Rodney', 'Jack Russell', 'Grey', 'F', 2010, 'Medium'],
['Butch', 'Bulldog', 'White', 'F', 2011, 'Medium'],
['Sally', 'Boston Terrier', 'Brown', 'F', 2013, 'Small']]
names = [Doggo_Database[0][0], Doggo_Database[1][0], Doggo_Database[2][0], Doggo_Database[3][0], Doggo_Database[4][0], Doggo_Database[5][0], Doggo_Database[6][0]]
name_select = input('Do you know the name of the Doggo? If yes, state the name. If no, state NO in capital letters. ')
while name_select != 'NO' and name_select not in names:
print('This is not a valid entry.')
name_select = input('Please try again: ')
if name_select != 'NO':
for name in names:
if name_select == name:
print(name_select)
Data_name =
elif name_select == 'NO':
print("We're currenly unable to find the doggo until more search options are availble")
else:
print('a logic error has occurred')
Для этого я использую базовый python, а не SQL
Комментарии:
1.
Data_name =
сделает так, что ваш фрагмент кода не будет работать
Ответ №1:
Я предполагаю, что вы ищете Data_name =
соответствующий список, учитывая способ написания вашего кода, вы можете сделать это:
Data_name = [i for i in Doggo_Database if i[0]==name_select][0]
Например, если name_select = 'Bo'
результатом будет
['Bo', 'Doberman', 'Brown', 'M', 2011, 'Large']
Ответ №2:
Если вы можете использовать python dict (как dogs DB), это сделает ваш код намного чище.
db = {'Lilly': ['Jack Russell', 'White', 'F', 2009, 'Medium'],
'Winston': ['Pug', 'Brown', 'M', 2010, 'Small']}
name_select = input('Do you know the name of the Doggo? If yes, state the name. If no, state NO in capital letters. ')
while name_select != 'NO' and name_select not in db:
print('This is not a valid entry.')
name_select = input('Please try again: ')
if name_select != 'NO':
print(f'Dog details: {db.get(name_select)}')
else:
print("We're currenly unable to find the doggo until more search options are availble")