#python
#питон
Вопрос:
Как я могу отфильтровать следующий список с кортежами внутри только чисел в другой список с целыми числами?
Это мой Список: [(10, '♦️'), (10, '♠️'), (8, '♠️'), (6, '♣️'), (9, '♦️')]
И я хочу получить еще один список с целыми числами: [10, 10, 8, 6, 9]
Ответ №1:
Вам нужно пройти карты, разложить каждую из них по рангу и масти и сохранить только ранг:
ranks = [rank for (rank, suit) in cards]
Ответ №2:
new_list = [x[0] for x in old_list]
Ответ №3:
Вы можете использовать понимание вложенного списка с isinstance(n,
int
)
, чтобы проверить, является ли элемент целым:
>>> my_list = [(10, '♦️'), (10, '♠️'), (8, '♠️'), (6, '♣️'), (9, '♦️')]
>>> [n for t in my_list for n in t if isinstance(n, int)]
[10, 10, 8, 6, 9]
Для получения более подробной информации обратитесь к документу «isinstance».
Если все ваши числа будут иметь 0-й индекс каждого кортежа, то вы можете использовать zip
:
>>> list(zip(*my_list))[0]
(10, 10, 8, 6, 9)