Группировка в многомерном списке

Статус
Закрыто для дальнейших ответов.

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Lst=[[1,3,1,2,1],[3,4,4]] надо получить
LS = [[[1,1,1],[2],[3]],[[3],[4,4]]
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Lst=[[1,3,1,2,1],[3,4,4]] надо получить
LS = [[[1,1,1],[2],[3]],[[3],[4,4]]
Вот пример:
Python:
lst = [[1, 3, 1, 2, 1], [3, 4, 4]]

def group_list(lst_):
    d = {}
    for i in lst_:
        if d.get(i):
            d[i].append(i)
        else:
            d[i] = [i]
    return sorted(d.values())

lst2 = [group_list(i) for i in lst]
print(lst2)
 

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Большущее спасибо!!!!
 

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Не хочу показаться навязчивым, но если можно еще один решить затык.Решение у меня есть,но оно слишком заморочнное.
Пример:
Sp=[[2,4,6,3,3],[4,4,3,1,1]]
Key=6
Необходимо создать списки с суммой до как
out=[[[2,4],[3,3],[6]],[[4,],[4],[3,1,1]]]
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Пример:
Sp=[[2,4,6,3,3],[4,4,3,1,1]]
Key=6
Необходимо создать списки с суммой до как
out=[[[2,4],[3,3],[6]],[[4,],[4],[3,1,1]]]
Вот пример:
Python:
lst = [[2, 4, 6, 3, 3], [4, 4, 3, 1, 1]]
key = 6

def group_list2(lst_):
    k = 0
    d = {k: []}
    for i in lst_:
        if sum(d[k]) + i <= key or d[k] == []:
            d[k].append(i)
        else:
            k += 1
            d[k] = [i]
    return sorted(d.values(), key=sum)

lst2 = [group_list2(i) for i in lst]
print(lst2)
 

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Большущее спасибо!!!!!! То что надо
 

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Python:
list = [[1,2,8,8,2],[4,5,4,5],[3,7,8,4]]

#удалить дубликаты
print ([[1,2,8],[4,5],[3,7,8,4]])
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
Python:
list = [[1,2,8,8,2],[4,5,4,5],[3,7,8,4]]

#удалить дубликаты
print ([[1,2,8],[4,5],[3,7,8,4]])
что это?

upd
это вопрос был наверное?
можно так
Python:
lst = [[1, 2, 8, 8, 2], [4, 5, 4, 5], [3, 7, 8, 4]]
lst_fin = [sorted(list(set(i))) for i in lst]

print(lst_fin)
 
Последнее редактирование:

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Спасибо
 

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Python:
a1 = [1.12,1.25,3.1]
b1 = [2,3,4,5]
print(2,2,4) # результат
# в списке a1 найти ближайшее число из списка b1
# не используя округление
 

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Срезы многомерного списка
Python:
a = [[2,4,2,4,5,"FF"],[3,2,"D",1,5]] # список
b = [3,2] #
print([[4,5,"FF"],["D",1,5]])[/COD
Заранее Спасибо за помощь.
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
370
107
43
Срезы многомерного списка
какие-то мудрёные срезы.
Python:
print([a[0][b[0]:], a[1][b[1]:]])
 

Vitys

Новичок
Пользователь
Янв 14, 2022
24
0
1
Python:
k = [[5,4,4,1], [4,6,3,4,2]] # удалить дубликаты с сохранением списка

OUT = [[5,4,1],[4,6,3,2]]
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 580
457
83
Python:
k = [[5,4,4,1], [4,6,3,4,2]] # удалить дубликаты с сохранением списка

OUT = [[5,4,1],[4,6,3,2]]
вы сами хоть что то делаете? или вы нам экзамен устраиваете?
Python:
l = [[5, 4, 4, 1], [4, 6, 3, 4, 2]]  # удалить дубликаты с сохранением списка

for k, v in enumerate(l):
    l[k] = sorted(set(v), key=lambda x: v.index(x))

print(l)

и для нового вопроса создавайте новую тему
закрываю
 
Статус
Закрыто для дальнейших ответов.

Форум IT Специалистов