Я трохи розгублений щодо inоператора python для наборів.
Якщо у мене є набір sі якийсь екземпляр b, чи правда це b in sозначає, " чи є якийсь елемент xу sтакому, який b == xєtrue "?
Я трохи розгублений щодо inоператора python для наборів.
Якщо у мене є набір sі якийсь екземпляр b, чи правда це b in sозначає, " чи є якийсь елемент xу sтакому, який b == xєtrue "?
Відповіді:
Так, але це також означає hash(b) == hash(x), що рівності елементів недостатньо, щоб зробити їх однаковими.
Це вірно. Ви можете спробувати його в перекладачі так:
>>> a_set = set(['a', 'b', 'c'])
>>> 'a' in a_set
True
>>>'d' in a_set
False
a = 'a'; b = 'a'; a is b). Я спробував це a = (1, 2, 3); b = (1, 2, 3); a == b; hash(a) == hash(b); a is b; a in set([b])замість цього.
Так, це може означати так, або це може бути простий ітератор. Наприклад: Приклад як ітератор:
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')
редагується: редагується, щоб включати набори, а не списки та рядки
Струни, хоч і не є 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цього прикладу.
... or 'e' or 'es' or 's'. Подумайте просто видалити цю безглуздо відповідь.
Набори поводяться інакше, ніж дикти, вам потрібно використовувати такі операції, як 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