Удаление дубликатов из списка списков в Python

Я думаю, что это столь легко, как я могу объяснить его. Любой может исправить меня или добавить к этому.

SOAP является форматом сообщения, используемым разъединенными системами (как через Интернет) для обмена информацией / данные. Это делает с сообщениями XML, идущими назад и вперед.

веб-сервисы передают или получают сообщения SOAP. Они работают по-другому, в зависимости от какого языка они записаны в.

11
задан 6 revs, 3 users 57% 17 July 2009 в 14:28
поделиться

4 ответа

Вы заботитесь о сохранении порядка / какой дубликат будет удален? Если нет, то:

dict((x[0], x) for x in L).values()

сделает это. Если вы хотите сохранить порядок и хотите сохранить первый найденный, тогда:

def unique_items(L):
    found = set()
    for item in L:
        if item[0] not in found:
            yield item
            found.add(item[0])

print list(unique_items(L))
29
ответ дан 3 December 2019 в 02:20
поделиться

используйте вместо этого dict:

L = {'14': ['65', 76], '2': ['5', 6], '7': ['12', 33]}
L['14'] = ['22', 46]

если вы получаете первый список из какого-то внешнего источника, преобразуйте его так:

L = [['14', '65', 76], ['2', '5', 6], ['7', '12', 33], ['14', '22', 46]]
L_dict = dict((x[0], x[1:]) for x in L)
4
ответ дан 3 December 2019 в 02:20
поделиться

Я не уверен, что вы имели в виду под "другим списком", поэтому я предполагаю, что вы говорите те списки внутри L

a=[]
L = [['14', '65', 76], ['2', '5', 6], ['7', '12', 33], ['14', '22', 46],['7','a','b']]
for item in L:
    if not item[0] in a:
        a.append(item[0])
        print item
0
ответ дан 3 December 2019 в 02:20
поделиться

Если порядок не имеет значения, код ниже

print [ [k] + v for (k, v) in dict( [ [a[0], a[1:]] for a in reversed(L) ] ).items() ]

дает

[['2', '5', '6'], ['14', '65', '76'], ['7', '12', '33']]

0
ответ дан 3 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: