Python как он есть

Допустим есть такой многомерный массив:
a= [1, 2 ,3 ,4]
[ 3, 4, 5, 6]
[5, 3, 2, 2]
. . .
есть второй массив
b= [ 1:[ab, ba]]
[2:[bc, cd]]
Нужно сделать так что бы проверяло значения первого массива и если есть совпадение дописывало его таким видом:
a= [[1,ab, ba], [2,bc, cd] ,3 ,4]
[ 3, 4, 5, 6]
[5, 3, [2, bc, cd], [2,bc, cd]]
  • Вопрос задан
  • 2769 просмотров
Пригласить эксперта
Ответы на вопрос 2
adugin
@adugin Куратор тега Python
a = [
	[1, 2 ,3 ,4],
	[3, 4, 5, 6],
	[5, 3, 2, 2]
]

b = {
	1: ['ab', 'ba'],
	2: ['bc', 'cd']
}

for r, row in enumerate(a):
	a[r] = map(lambda x: [x]+b[x] if x in b else x, row)

print a
Ответ написан
Комментировать
kai_zer_ru
@kai_zer_ru
Программист, разработка на python, golang, php
a= [[1, 2 ,3 ,4],
[ 3, 4, 5, 6],
[5, 3, 2, 2]]

b= { 1:['ab', 'ba'],
2:['bc', 'cd']}

for k,mas in enumerate(a):
....for i,j in enumerate(mas):
........c = b.get(j)
............if len(q)<=k or len(q)==0:
................q.append([])
............if c:
................q[k].append([j,c[0],c[1]])
............else:
................q[k].append(j)

Точки замени на пробелы/табы как тебе удобнее
Вот тебе быстрое решение =) Ответ получается такой:

[[[1, 'ab', 'ba'], [2, 'bc', 'cd'], 3, 4], [3, 4, 5, 6], [5, 3, [2, 'bc', 'cd'], [2, 'bc', 'cd']]]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы