Как манипулировать данными в многомерных списках? - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь изменить одну структуру списков в этот другой список списков, используя Python. Например, если у меня есть следующий список, и я хочу заменить некоторое внутреннее содержимое пустым, как я могу это сделать. Ниже я предоставил типичный ввод и вывод для того, что я прошу. И это должно быть в Python.

Ввод:

[[['1','2','3','X'], ['4','5','6','Y'], ['7','8','9','Z']],
 [['a','b','c'], ['d','e','f'], ['g','h','i']],
 [['a1','a2','a3'],['b1','b2','b3'],['c1','c2','c3']]]

Ввод:

[[['1','','','X'], ['4','','','Y'], ['7','','','Z']],
 [['a','b','c'], ['d','e','f'], ['g','h','i']],
 [['a1','a2','a3'], ['b1','b2','b3'], ['c1','c2','c3']]]

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Я бы предложил заменить подсписки на a для l oop, потому что в python array[:][1] не выбирается первый элемент из каждого sybarray, но выбирается первый подмассив (как это делает array[1]) для многомерных массивов.

for i in range(len(arr)-1):
        for j in range(len(len(arr[i])):
              #replace with if statements

1 голос
/ 20 февраля 2020

Излагая это, я думаю, что вы ищете метод list.pop, чтобы "избавиться от некоторых данных и получить выходные данные", и разделение для доступа к диапазону значений. Например

>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l.pop(5)
5
>>> l
[0, 1, 2, 3, 4, 6, 7, 8, 9]
>>> l[3:6]
[3, 4, 6]

Обновление на основе комментария:

>>> from pprint import pprint as pp
>>> pp(l)
[[[1, 2, 3, 'a'], [4, 5, 6, 'b'], [7, 8, 9, 'c']],
 [[1, 2, 3, 'd'], [4, 5, 6, 'e'], [7, 8, 9, 'f']],
 [[1, 2, 3, 'g'], [4, 5, 6, 'h'], [7, 8, 9, 'i']]]
>>> for outer in l:
...   for inner in outer:
...     inner[1:3] = ["", ""]
>>> pp(l)
[[[1, '', '', 'a'], [4, '', '', 'b'], [7, '', '', 'c']],
 [[1, '', '', 'd'], [4, '', '', 'e'], [7, '', '', 'f']],
 [[1, '', '', 'g'], [4, '', '', 'h'], [7, '', '', 'i']]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...