сравнение элементов списка

zaivanza

Новичок
Пользователь
Дек 28, 2021
28
1
3
вот у меня есть два списка
mas1 = ['BTC_USDT 48956.76', 'ETH_USDT 3901.36', 'DOT_USDT 28.12']
mas2 = ['BTCUSDT 48978.56000000', 'DOTUSDT 27.1000000', 'ETHUSDT 3902.36000000']

Как сравнивать числа элементов одного списка с другим, если они разбросаны не по порядку?
То есть мне нужно сравнить DOTUSDT (mas2) c DOT_USDT (mas1)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Как сравнивать числа элементов одного списка с другим, если они разбросаны не по порядку?
То есть мне нужно сравнить DOTUSDT (mas2) c DOT_USDT (mas1)
Можно преобразовать списки в словари, потом в цикле сравнить значение по каждому ключу:
Python:
mas1 = ['BTC_USDT 48956.76', 'ETH_USDT 3901.36', 'DOT_USDT 28.12']
mas2 = ['BTCUSDT 48978.56000000', 'DOTUSDT 27.1000000', 'ETHUSDT 3902.36000000']
d1 = {x.split()[0]: x.split()[1] for x in mas1}
d2 = {x.split()[0]: x.split()[1] for x in mas2}


def compare(k1, k2):
    if d1[k1] > d2[k2]:
        print(f"{k1} (mas1) > {k2} (mas2)")
    elif d1[k1] == d2[k2]:
        print(f"{k1} (mas1) == {k2} (mas2)")
    else:
        print(f"{k1} (mas1) < {k2} (mas2)")


# сравнение значений по всем ключам
for k1, v1 in d1.items():
    k2 = k1.replace('_', '')
    compare(k1, k2)

# сравнение значений по одному ключу
compare('DOT_USDT', 'DOTUSDT')
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
Код:
x = [1, 2, 6, 3, 4, 5, 6, 2, 7, 2, 8]
# уникальные данные из массива
list_уник = list(set(x))
# повторяющиеся данные из массива
list_повтор = list([k for k, v in Counter(x).items() if v > 1])
print(x, len(x))  # => [1, 2, 6, 3, 4, 5, 6, 2, 7, 2, 8] 11
print(list_уник, len(list_уник))  # => [1, 2, 3, 4, 5, 6, 7, 8] 8
print(list_повтор, len(list_повтор))  # => [2, 6] 2
 

Форум IT Специалистов