Как мне написать функцию python, которая возвращает словарь - PullRequest
0 голосов
/ 20 июня 2020

Я написал следующее

def convert(col):
    value = 0
    value = value + 1
    res_dct = {col[i]:value for i in range(0, len(col))}
    return res_dct

прямо сейчас, когда я перехожу в список ['one', 'two', 'three'], он возвращает {'one':1, 'two':1, 'three':1}

Я бы хотел, чтобы он вернул {'one':1, 'two':2, 'three':3}

Ответы [ 2 ]

2 голосов
/ 20 июня 2020

Вы можете сделать так:

def convert(col):
    res_dct = {col[i]:i+1 for i in range(0, len(col))}
    return res_dct

convert(['one', 'two', 'three'])
#returns {'one': 1, 'two': 2, 'three': 3}

Вы должны знать, что числа не имеют ничего общего с фактическими значениями. Другими словами, если список ввода был ['two', 'three', 'one'], результатом будет {'two': 1, 'three': 2, 'one': 3}.

0 голосов
/ 20 июня 2020

Ваш value не изменил каждую часть l oop, вместо этого используйте i, который уже увеличивается:

def convert(col):
    res_dct = {col[i]:(i+1) for i in range(0, len(col))}
    return res_dct
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...