Если операторы с кортежами и удаление кортежей из списка - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь проверить список кортежей для определенных типов кортежей. Я думал, что оператор _ будет работать здесь, но он не работает. Я думаю, что я мог бы перебрать список и проверить вручную, но я чувствую, что есть питонский способ решения этой проблемы. После этого я хотел бы удалить все кортежи с (1,) в первой позиции. Фильтр будет моей попыткой удаления.

self.bids = [(1,1),(1,2),(1,3),(2,0),(3,1),(3,2)] 
if (1,_) in bids or (2,_) in bids or (3,_) in bids:
                possibleModes.remove((1,_))
                return possibleModes

1 Ответ

0 голосов
/ 23 января 2019

_ - это обычное имя переменной, а не подстановочный знак или оператор, хотя по соглашению используется для хранения значений, которые не используются.

Чтобы проверить, имеет ли какой-либо из кортежей 1, 2 или3 в качестве первого элемента, вы можете использовать функцию any с выражением генератора, а чтобы удалить все кортежи с 1 в качестве первого элемента, вы можете использовать представление списка следующим образом:

if any(a in (1, 2, 3) for a, _ in self.bids):
    return [(a, b) for a, b in self.bids if a != 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...