Как получить доступ к следующему элементу списка внутри (для элемента в списке) l oop? (Python 3) - PullRequest
0 голосов
/ 21 апреля 2020

Представьте себе воображаемый список

for item in list: 
    print(item)      
    print(_________) # Fill the blanks to print next item in list

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

Ответы [ 5 ]

2 голосов
/ 21 апреля 2020

Вы можете использовать почтовый индекс:

for item,nextItem in zip(list,list[1:]+[None]): 
    print(item)      
    print(nextItem)
1 голос
/ 21 апреля 2020
for i,item in enumerate(list):
    if i < len(list)-1:
        print(list[i])
        print(list[i+1])
0 голосов
/ 21 апреля 2020

Этот код будет работать, только если в списке нет повторяющихся записей. Я изменил имя списка на data, потому что это плохая идея перезаписать имя встроенного list (и даже если это пример, я не могу заставить себя сделать это).

data = ['A', 1, 'B', 2, 'C']
for item in data: 
    print(item)      
    print(data[data.index(item) + 1])

В данный момент этот код падает для последнего элемента, потому что он пытается получить доступ к элементу после последнего. Вы можете исправить это, заменив строку на print('' if data.index(item) + 1 == len(data) else data[data.index(item) + 1]).

Я надеюсь, что вопрос касается домашней работы или чего-то подобного, потому что никто не будет / не должен писать такой код в реальном производстве.

0 голосов
/ 21 апреля 2020

Вы можете использовать enumerate для получения индекса i каждого элемента, а затем получить доступ к list[i + 1], если он есть:

l = [0, 1, 2, 3]

for i, item in enumerate(l): 
    print(item)
    if i + 1 < len(l):
        print(l[i + 1])

0 голосов
/ 21 апреля 2020

Я бы рекомендовал перечислить и затем использовать индекс для доступа к следующему. Вам нужно будет принять меры против выхода за пределы диапазона.

for idx, val in enumerate(lst):
    print(val)
    print(list[idx+1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...