Это не ошибка. Возвращенный fd_set
сообщает, какие сокеты были готовы. Поскольку сокеты не были готовы, возвращаемые fd_set
s должны быть пустыми. Представьте себе, если у вас было два сокета, которые вы проверяли на удобочитаемость, и select
вернулся 1. Если сокет, который еще не был готов, не был удален из выхода fd_set
на выходе, как вы узнаете, какой сокет был готов?
Есть некоторые проблемы с вашим кодом, но в целом, если вам приходится использовать одни и те же столбцы для поиска различных комбинаций значений, я рекомендую использовать DataFrame.query
:
terms = [('BMW', 5), ('VW', 10)]
query = '({})'.format(
') or ('.join(f"car == {repr(c)} and price == {p}" for c, p in terms))
query
# "(car == 'BMW' and price == 5) or (car == 'VW' and price == 10)"
df.query(query)
car price
1 BMW 5
2 VW 10
3 BMW 5
5 VW 10