Tôi hơi bối rối về intoán tử python cho các bộ.
Nếu tôi có một tập hợp svà một số trường hợp b, điều đó có đúng không b in s" có một số phần tử xtrong sđó b == xlàtrue "?
Tôi hơi bối rối về intoán tử python cho các bộ.
Nếu tôi có một tập hợp svà một số trường hợp b, điều đó có đúng không b in s" có một số phần tử xtrong sđó b == xlàtrue "?
Câu trả lời:
Đúng, nhưng điều đó cũng có nghĩa hash(b) == hash(x), vì vậy sự bình đẳng của các mặt hàng không đủ để làm cho chúng giống nhau.
Đúng rồi. Bạn có thể thử nó trong trình thông dịch như thế này:
>>> a_set = set(['a', 'b', 'c'])
>>> 'a' in a_set
True
>>>'d' in a_set
False
a = 'a'; b = 'a'; a is b). Tôi đã thử nó với a = (1, 2, 3); b = (1, 2, 3); a == b; hash(a) == hash(b); a is b; a in set([b])thay thế.
Vâng, nó có thể có nghĩa như vậy, hoặc nó có thể là một trình vòng lặp đơn giản. Ví dụ: Ví dụ như iterator:
a=set(['1','2','3'])
for x in a:
print ('This set contains the value ' + x)
Tương tự như một kiểm tra:
a=set('ILovePython')
if 'I' in a:
print ('There is an "I" in here')
chỉnh sửa: chỉnh sửa để bao gồm các bộ thay vì danh sách và chuỗi
Các chuỗi, mặc dù chúng không phải là setloại, có một thuộc tính có giá trị introng quá trình xác thực trong các tập lệnh:
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
Tôi hy vọng điều này sẽ giúp bạn hiểu rõ hơn về việc sử dụng invới ví dụ này.
... or 'e' or 'es' or 's'. Hãy xem xét chỉ cần xóa câu trả lời sai vô nghĩa này.
Các bộ hoạt động khác với các dicts, bạn cần sử dụng các thao tác thiết lập như 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