хочу иметь только уникальные пары - PullRequest
0 голосов
/ 11 июля 2019

поэтому у меня есть этот список, в котором есть несколько кортежей. Кортежи содержат названия акций индийского фондового рынка, поэтому я использую эти кортежи как пары акций, но проблема в том, что я не хочу повторять кортеж, но в этом спискеэто несколько кортежей, которые реплицируются, но в обратном порядке, как ('ALBK', 'SBIN'), то же самое ('SBIN', 'ALBK'). Я хочу, чтобы только один из них .ex ('ANDHRABANK', 'INDIANB') также повторялсяas ('INDIANB', 'ANDHRABANK') Я хочу удалить дубликаты кортежей, как это сделать

pairs = [('ALBK', 'SBIN'), ('ANDHRABANK', 'INDIANB'), ('ANDHRABANK', 'SBIN'), ('AXISBANK', 'FEDERALBNK'), 
 ('AXISBANK', 'INDIANB'), ('BANKBARODA', 'FEDERALBNK'), ('BANKINDIA', 'AXISBANK'), ('FEDERALBNK', 'AXISBANK'), 
 ('FEDERALBNK', 'BANKBARODA'), ('FEDERALBNK', 'UNIONBANK'), ('HDFC', 'ICICIBANK'), ('ICICIBANK', 'FEDERALBNK'), 
 ('ICICIBANK', 'HDFC'), ('ICICIBANK', 'INDIANB'), ('INDIANB', 'ANDHRABANK'), ('INDIANB', 'AXISBANK'), ('INDIANB', 'ICICIBANK'),
 ('SBIN', 'ALBK'), ('SBIN', 'ANDHRABANK'), ('UNIONBANK', 'FEDERALBNK')]

Ответы [ 2 ]

3 голосов
/ 11 июля 2019

Сортируйте пары и помещайте их в set.

unique_pairs = set(tuple(sorted(p)) for p in pairs)

Поскольку элементы set должны быть уникальными, удаляются дубликаты.

DEMO

0 голосов
/ 11 июля 2019

просто проверьте так:

nonDupPairs = []
for i in pairs:
    if i[::-1] not in nonDupPairs:
        nonDupPairs.append(i)

Это должно работать

...