2015-02-03 2 views
0

В моем курсе программирования Python мы обсуждаем, как манипулировать (добавлять, вычитать и т. Д.) Массивы и подматрицы. Пример из класса был, если бы мы имелиВычитание массивов из массивов с субмассивами в Python

ourArray = [['a','b','c'],['e','f','g','h'],['i','j'],['k','l','m','n','o','p']...] 

и Array = ['a','e','i','k',...], что-то вроде ourArray-Array возможно?

Я попытался

for w in ourArray: 
    w[0] - Array[0] 

В конце концов, что я хотел бы это

[['a','b','c'],['e','f','g','h'],['i','j'],['k','l','m','n','o','p']...] - ['a','e','i','k',...] = ['b','c'],['f','g','h'],['j'],['l','m','n','o','p']...]. 

Кроме того, я использую Python 3 в Windows.

+0

комплект разница звук похоже какой вы хотите (но это doenst сохранение заказ ...) –

ответ

1

Вы всегда можете сделать метод грубой силы

>>> ourArray = [['a','b','c'],['e','f','g','h'],['i','j'],['k','l','m','n','o','p']] 
>>> Array = ['a','e','i','k'] 
>>> for i in ourArray: 
...  for j in i: 
...   if j in Array: 
...    i.remove(j) 
... 
>>> ourArray 
[['b', 'c'], ['f', 'g', 'h'], ['j'], ['l', 'm', 'n', 'o', 'p']] 
+0

Wow. Мне нравится грубая сила. Upvote! – ForceBru

+0

@ForceBru Спасибо ... –

2

Как об этом list comprehension, вещих, один лайнере:

>>> ourArray = [['a','b','c'],['e','f','g','h'],['i','j'],['k','l','m','n','o','p']] 
>>> Array = ['a','e','i','k'] 
>>> [[item for item in arr if item not in Array] for arr in ourArray] 
[['b', 'c'], ['f', 'g', 'h'], ['j'], ['l', 'm', 'n', 'o', 'p']] 

Для каждого массива в ourArray, принимаем только те элементы, которые не в Array.

Смежные вопросы