#python #string #sorting #dictionary
Вопрос:
Как я могу преобразовать строку в словарь без дубликатов, а затем отсортировать значения в алфавитном порядке?
string = """Luke:sportnDick:hikenLisa:gamenLuke:craftnDick:hikenLuke:craftnDick:craft"""
ожидаемый результат:
{Luke: [sport, craft], Lisa: [game], Dick: [hike, craft]}
ожидаемые выходные данные после сортировки значений в алфавитном порядке: {Luke: [craft, sport], Lisa: [game], Dick: [craft, hike]}
Комментарии:
1. В данном конкретном случае нет кратчайшего пути с одной строкой. Что вы пробовали до сих пор? На самом деле это не такая уж сложная проблема. Разделите, затем зациклите создание диктанта.
2. я пробовал:
dictionary = dict((k.strip(), v.strip()) for k, v in (p.split(':') for p in data.split('n')))
сделать строку под диктовку, но всегда получаю ошибку: «Ошибка значения: слишком много значений для распаковки(ожидается 2)3. Верно. Это проблема с данными. У вас
""
после 5-й строки нет"n"
.4. Короче:
dct = dict( line.split(":") for line in string.splitlines() )
, поэтому, когда я сказал, что не было однострочного, я солгал.5. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.