Python 3: функция «Список со строками и их индексами» - PullRequest
0 голосов
/ 10 июня 2018

Напишите функцию, которая будет возвращать список со строками и их индексами.например, ['good', 'morning'] -> ['0 - good', '1 - morning']

Я пробовал это:

def add_index(list_a):

    x = []
    for word in list_a:
        x = [list_a.index(word) for word in list_a]

    return x

Однако, возвращение [0, 1], а не то, что я ищу.

Ответы [ 4 ]

0 голосов
/ 11 июня 2018

Попробуйте сделать это:

for index, word in enumerate(list_a):
    print(str(index) + " - " + word)

Это добавит индексный номер для каждой темы в list_a.Этот индекс затем добавляется в строку для его печати.Если вы хотите, чтобы он был добавлен в новый список, я бы сделал это так.

x = []
for index, word in enumerate(list_a):
    x.insert(len(x), str(index) + " - " + str(word))
0 голосов
/ 10 июня 2018
x = []
for word in list_a:
    x = [list_a.index(word) + ' - ' + word  for word in list_a]

return x
0 голосов
/ 10 июня 2018

Вы можете использовать функцию enumerate:

>>> def f(data):
...     return ['{} - {}'.format(i, s) for i, s in enumerate(data)]
... 
>>> f(['good', 'morning'])
['0 - good', '1 - morning']

Если вы используете Python 3.6+, вы также можете использовать f-strings:

>>> def f(data):
...     return [f'{i} - {s}' for i, s in enumerate(data)]
... 
>>> f(['good', 'morning'])
['0 - good', '1 - morning']
0 голосов
/ 10 июня 2018

Ваш список понимает только индекс, а не слово:

x = ["{} - {}".format(list_a.index(word), word) for word in list_a]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...