вторник, 13 января 2015 г.

из одного списка вычесть другой список

# -*- coding:utf-8 -*-
'''
Задача: из одного списка вычесть другой список
1
Цикл for для списка l11 от 0 до len(l11)
Если нулевой элемент удовлетворяет условию,
то он удаляется и все элементы сдвигаются влево.
Цикл продолжается с позиции 1 и тот элемент,
который сдвинулся не попадает в проверку условия.
2
Решение проблемы
Цикл делаем по срезу на списке L[:]
В этом случае создается копия (клон) списка,
сам список не изменяется
'''
# 1
def sublist(l11, l22):
    for i in l11:
        if i in l22:
            l11.remove(i)
# 2         
def sublistT(l11, l22):
    for i in l11[:]:
        if i in l22:
            l11.remove(i)
             
l1 = [1,2,3,4]
l2 = [1,2,5,6]

sublist(l1, l2)

print(l1)

l21 = [1,2,3,4]
l22 = [1,2,5,6]

sublistT(l21, l22)

print(l21)

Комментариев нет:

Отправить комментарий

X-Plane 11, 12 - любитель, Фото любитель со стажем

Постоянные читатели

Архив блога