Получить первый элемент строкового подсписка в виде словарного ключа со списком значений в python - PullRequest
0 голосов
/ 10 апреля 2020

Итак, у меня есть список строк. Мне нужно преобразовать первую часть строки в ключ в словаре и обработать оставшуюся часть как значение. Например, список:

['We have a nice weekend','Hope you all well']

Должен вернуться:

{'We':['have','a','nice','weekend'],'Hope':['you','all','well']}

Моя попытка следующая:

dict1 = {}   
dict1 = {item[0]:item[1:] for item in List1}
return dict1

Но это дает мне результат:

{'W':'e have a nice weekend','H':'ope you all well'

Как это исправить? Заранее спасибо.

Ответы [ 5 ]

1 голос
/ 10 апреля 2020

Вы можете попробовать это.

lines=['We have a nice weekend','Hope you all well']
d={}

for line in lines:
    k,*v=line.split()
    d[k]=v
d
# {'We': ['have', 'a', 'nice', 'weekend'], 'Hope': ['you', 'all', 'well']}
0 голосов
/ 10 апреля 2020

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

strings = ['We have a nice weekend','Hope you all well']
result  = { k:v for k,*v in map(str.split,strings) }

вывод:

print(result)

{'We': ['have', 'a', 'nice', 'weekend'], 'Hope': ['you', 'all', 'well']}
0 голосов
/ 10 апреля 2020

Замените свою вторую строку:

dict1 = {item[0]:item[1:] for item in List1}

на эту:

dict1 = {item.split()[0]:' '.join(item.split()[1:]) for item in List1}
0 голосов
/ 10 апреля 2020

Попробуйте следующее:

list1 = ['We have a nice weekend', 'Hope you all well']

# convert a string into list of words separated by a space
list1 = [item.split(' ') for item in list1]
print(list1) # [['We', 'have', 'a', 'nice', 'weekend'], ['Hope', 'you', 'all', 'well']]

dict1 = {item[0]: item[1:] for item in list1}
print(dict1) # {'We': ['have', 'a', 'nice', 'weekend'], 'Hope': ['you', 'all', 'well']}
0 голосов
/ 10 апреля 2020

Попробуйте:

x = ['We have a nice weekend','Hope you all well']

затем:

y = {s[0]:s[1:] for s in (p.split() for p in x)}

Тогда y будет:

{'We': ['have', 'a', 'nice', 'weekend'],
 'Hope': ['you', 'all', 'well']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...