Нахождение индекса подсписка в списке python 3 - PullRequest
0 голосов
/ 16 марта 2019

У меня есть список, который изначально пуст, но пользователь добавляет в список подсписки.

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

Мне нужен способ поиска индекса подсписка, используя только первые два элемента. Есть идеи?

database=[] 
fn=input("Enter the students first name:")
sn=input("Please enter the students surname:")

rr=(any(fn and sn in i for i in database))        

if rr==True:
 print("true")
 pos=(database.index([fn, sn]))

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

вам нужно найти конкретный подсписок, чтобы передать его функции index, например, изменив средство проверки, чтобы оно возвращало подсписок

for sublist in database:
  if fn in sublist and sn in sublist:
    index_sublist = sublist
    break

, затем выполните поиск индекса по найденному подсписку

pos = (database.index(index_sublist))

поспособ проверить это

fn and sn in i for i in database

, в этом случае вы проверяете, существует ли fn и есть ли sn в i.Попробуйте

fn in i and sn in i for i in database

, кроме того, есть более эффективные способы хранения значений ваших задач, например, в dict, в которых tuple(sublist[:2]) являются ключами, а подсписки - значениями

0 голосов
/ 16 марта 2019

switch:

pos=(database.index([fn, sn]))

с этим:

pos=[i for i in range(len(database)) if database[i][0]==sn and database[i][1]==fn]

Возвращает позиции всех подсписков в списке, для которого первый элемент fn, а второй элемент sn

...