У меня есть отображение как следующийсписок Subsorting отображений
mapping = [
"key1",
"key2",
"key3",
"key4",
"key5#1",
"key5#4",
"key5#2",
"key5#3",
"key6#1",
"key6#2"
]
и список списков, например [['val1', 'val2', 'val3', 'val4', 'val5', 'val6', 'val7', 'val8', 'val9' 'val10']]
, и я хочу закончить список словарей, например.
[{
"key1": "val1",
"key2": "val2",
"key3": "val3",
"key4": "val4",
"key5": ["val5", "val7", "val8", "val6"],
"key6": ["val9", "val10"],
}]
Такое, что каждый ключ без #
просто 1 значения, в то время как ключи с #
имеет упорядоченный список отсортирован по целому числу после #
. То, что я сейчас:
for i in range(len(mapping)):
if '#' in mapping[i]:
result.setdefault(mapping[i].split('#')[0], []).append(row[i])
else:
result[mapping[i]] = row[i]
Однако это не сортирует значения в соответствии с числом после #
.
Будет ли заказ после # импортировать или применять сортировку в конце? – Destrif
Он должен быть отсортирован по целому числу после '#', а не соответствующему значению – YnkDK
Думал, что вы могли бы это сделать, но не ... Это зависит от порядка ввода элемента result.setdefault (mysplit [0], []). insert (mysplit [1] -1, row [i]) – Destrif