Нумерация Python с элементом списка по циклу for

#python #list #loops #dictionary #for-loop

#python #Список #циклы #словарь #for-цикл

Вопрос:

У меня есть список словарей, и есть также элемент комментариев, как я могу распечатать числа с комментарием при печати этого списка следующим образом ,

  1. Пример комментария
  2. Другой пример комментария

вот мой код на python

 entries = [{'First Name': 'Sher', 'Last Name': 'Khan', 'Age': '22', 'Telephone': '2989484'},
           {'First Name': 'Ali', 'Last Name': 'Khan', 'Age': '22', 'Telephone': '398439'},
           {'First Name': 'Talha', 'Last Name': 'Khan', 'Age': '22', 'Telephone': '3343434', 'comments': []}]

search = input("type your search: ")
        if search in [person['Last Name'] for person in entries]:
            for person in entries:
                if person["Last Name"] == search:
                    print("Here are the records found for your search")
                    for e in person:
                        if e == "comments":
                            for comment in person["comments"]:
                                print(comment)
                        else:
                            print(e, ":", person[e])
        else:
            print("There is no record found as you search Keyword")
  

Ответ №1:

Вы можете использовать enumerate :

 entries = [{'First Name': 'Sher', 'Last Name': 'Khan', 'Age': '22', 'Telephone': '2989484'},
           {'First Name': 'Ali', 'Last Name': 'Khan', 'Age': '22', 'Telephone': '398439'},
           {'First Name': 'Talha', 'Last Name': 'Khan', 'Age': '22', 'Telephone': '3343434', 'comments': ['Comment 1','Comment 2']}]

search = input("type your search: ")
if search in [person['Last Name'] for person in entries]:
    for person in entries:
        if person["Last Name"] == search:
            print("Here are the records found for your search")
            for e in person:
                if e == "comments":
                    for index,comment in enumerate(person[e]):
                        print(f"{index 1}. {comment}")
                else:
                    print(e, ":", person[e])
else:
    print("There is no record found as you search Keyword")
  

Вывод:

 type your search: >? Khan
Here are the records found for your search
First Name : Sher
Last Name : Khan
Age : 22
Telephone : 2989484
Here are the records found for your search
First Name : Ali
Last Name : Khan
Age : 22
Telephone : 398439
Here are the records found for your search
First Name : Talha
Last Name : Khan
Age : 22
Telephone : 3343434
1. Comment 1
2. Comment 2
  

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

1. а что, если я получу ввод от пользователя, например, пользователь вводит ввод 2. и я хочу удалить коммнет № 2. ?

2. Для этого вы должны использовать отдельный оператор ввода и отдельный цикл

3. Вы можете попробовать сделать это самостоятельно. Если вы не смогли этого сделать, вы можете задать его здесь или задать как отдельный вопрос, чтобы я мог вам помочь.