Поиск значения во вложенном списке - PullRequest
0 голосов
/ 04 мая 2018

У меня есть файл базы данных, CSV-файл. Я хочу найти имя в этом списке. Чтобы знать, существует ли он или нет. Если не отображать опцию, чтобы добавить. Число рядом с именем является номером клиента. Как мне найти значение в этом списке?

lines=[]
user_name=input("PLEASE ENTER YOUR FIRST AND LAST NAME: ")
with open("data_base.csv", "r") as in_file:
    for line in in_file:
        row = line.split(",")
        for i in range(1, len(row)):
            row[i] =eval(row[i])
            lines.append(row)

Если я распечатаю список, результат будет следующим:

[['Mariana Ortigoza', 1], ['James Butt', 2], ['Josephine Darakjy', 3], ['Art Venere', 4], ['Lenna Paprocki', 5], ['Donette Foller', 6], ['Simona Morasca', 7], ['Mitsue Tollner', 8], ['Leota Dilliard', 9], ['Sage Wieser', 10]]

1 Ответ

0 голосов
/ 04 мая 2018

Одним из способов является использование operator.itemgetter для извлечения первого элемента каждого подсписка.

Затем проверьте, входит ли введенное имя в set имен; если нет, то добавьте lines.

from operator import itemgetter

lines = [['Mariana Ortigoza', 1], ['James Butt', 2], ['Josephine Darakjy', 3],
         ['Art Venere', 4], ['Lenna Paprocki', 5], ['Donette Foller', 6],
         ['Simona Morasca', 7], ['Mitsue Tollner', 8], ['Leota Dilliard', 9],
         ['Sage Wieser', 10]]

user_name = input("PLEASE ENTER YOUR FIRST AND LAST NAME: ")

if user_name not in set(map(itemgetter(0), lines)):
    lines.append([user_name, len(lines)+1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...