Python "in" set operator Я немного запутался насчет питона in операторе для множеств. Если у меня есть набор в Python s и некоторый экземпляр b, верно ли, что b in s означает "есть ли элемент x в s такой, что b == x true "? Ответ 1 Да, но это также означает hash(b) == hash(x), поэтому для равномерного распределения элементов недостаточно сделать их одинаковыми. Ответ 2 Это правильно. Вы можете попробовать его в интерпретаторе следующим образом: >>> a_set = set(['a', 'b', 'c']) >>> 'a' in a_set True >>>'d' in a_set False Ответ 3 Да, это может означать так, или это может быть простой итератор. Например: Пример как итератор: a=set(['1','2','3']) for x in a: print ('This set contains the value ' + x) Аналогично проверке: a=set('ILovePython') if 'I' in a: print ('There is an "I" in here') отредактирован: отредактирован для включения наборов, а не списков и строк Ответ 4 Строки, хотя они не являются типами set, имеют ценное свойство in во время проверки в скриптах: yn = input("Are you sure you want to do this? ") if yn in "yes": #accepts 'y' OR 'e' OR 's' OR 'ye' OR 'es' OR 'yes' return True return False Надеюсь, это поможет вам лучше понять использование in с помощью этого примера. Ответ 5 Наборы ведут себя не так, как dicts, вам нужно использовать такие операции, как issubset(): >>> k {'ip': '123.123.123.123', 'pw': 'test1234', 'port': 1234, 'debug': True} >>> set('ip,port,pw'.split(',')).issubset(set(k.keys())) True >>> set('ip,port,pw'.split(',')) in set(k.keys()) False Ответ 6 Да. Это означает, что данный элемент находится в наборе.
Ответ 1 Да, но это также означает hash(b) == hash(x), поэтому для равномерного распределения элементов недостаточно сделать их одинаковыми.
Ответ 2 Это правильно. Вы можете попробовать его в интерпретаторе следующим образом: >>> a_set = set(['a', 'b', 'c']) >>> 'a' in a_set True >>>'d' in a_set False
Ответ 3 Да, это может означать так, или это может быть простой итератор. Например: Пример как итератор: a=set(['1','2','3']) for x in a: print ('This set contains the value ' + x) Аналогично проверке: a=set('ILovePython') if 'I' in a: print ('There is an "I" in here') отредактирован: отредактирован для включения наборов, а не списков и строк
Ответ 4 Строки, хотя они не являются типами set, имеют ценное свойство in во время проверки в скриптах: yn = input("Are you sure you want to do this? ") if yn in "yes": #accepts 'y' OR 'e' OR 's' OR 'ye' OR 'es' OR 'yes' return True return False Надеюсь, это поможет вам лучше понять использование in с помощью этого примера.
Ответ 5 Наборы ведут себя не так, как dicts, вам нужно использовать такие операции, как issubset(): >>> k {'ip': '123.123.123.123', 'pw': 'test1234', 'port': 1234, 'debug': True} >>> set('ip,port,pw'.split(',')).issubset(set(k.keys())) True >>> set('ip,port,pw'.split(',')) in set(k.keys()) False