Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ฟังก์ชัน issubset() ใน Python


ในบทความนี้ เราจะเรียนรู้การนำไปใช้งานและการใช้งานของฟังก์ชัน issubset() ที่มีใน Python Standard Library

เมธอด issubset() จะคืนค่า Boolean True เมื่อองค์ประกอบทั้งหมดของเซตหนึ่งอยู่ในอีกเซตหนึ่ง (ที่ส่งผ่านเป็นอาร์กิวเมนต์) มิฉะนั้น จะคืนค่า Boolean False

ในภาพที่กำหนดด้านล่าง B เป็นเซตย่อย (subset) ของ A ในกรณีที่ A และ B เป็นเซตเหมือนกัน หมายความว่า A เป็น proper subset ของ B นั่นหมายถึงทั้งสองเซตมีองค์ประกอบเหมือนกัน

ฟังก์ชัน issubset() ใน Python

Syntax

<set 1>.issubset(<set 2>)

ค่าที่คืน

Boolean True/False

ตอนนี้มาดูภาพประกอบเพื่อเข้าใจแนวคิด

ตัวอย่าง

A = {'t', 'u', 't', 'o', 'r', 'i', 'a', 'l'}
B = {'t', 'u', 't'}
C = {'p', 'o', 'i', 'n', 't'}
print(B.issubset(A))
print(B.issubset(C))
A = set(str(A) + str(C))
print(C.issubset(A))

ผลลัพธ์

True
False
True

คำอธิบาย

ที่นี่มีการตรวจสอบว่าองค์ประกอบทั้งหมดของ B อยู่ใน A ซึ่งให้ผล True คล้ายกันสำหรับคำสั่งถัดไป

ตอนนี้เราต่อเซตทั้งสองเพื่อให้กลายเป็น subset โดยบังคับ โดยใช้ type casting ตามที่เห็นในคำสั่งถัดไป

ตอนนี้มาดูว่าเกิดอะไรขึ้นถ้าเราระบุ iterable อีกประเภทหนึ่งนอกจาก set และส่งเป็นอาร์กิวเมนต์

ตัวอย่าง

A = ['t', 'u', 't', 'o', 'r', 'i', 'a', 'l']
B = {'t', 'u', 't'}
C = ('p', 'o', 'i', 'n', 't')
D = {'p', 'o', 'i', 'n', 't'}
print(B.issubset(A))
print(B.issubset(C))
A = set(str(A) + str(C))
print(D.issubset(A))

ผลลัพธ์

True
False
True

คำอธิบาย

ที่นี่เราส่ง tuple, string และ list iterables ให้ฟังก์ชัน issubset() ประเภทเหล่านี้ถูกแปลงเป็น set type โดยอัตโนมัติ (implicitly) เพื่อให้ได้ผลลัพธ์ที่ต้องการ

เราต้องสังเกตด้วยว่าอาร์กิวเมนต์นอกฟังก์ชันต้องเป็น type <set> เสมอ เพื่อให้ interpreter รู้ว่าการเปรียบเทียบเป็นระหว่างสองเซต ไม่ใช่ประเภทอื่น

สรุป

ในบทความนี้ เราได้เรียนรู้วิธีใช้ issubset() ใน Python และว่ามีประเภทอาร์กิวเมนต์อะไรบ้างที่อนุญาตให้เปรียบเทียบด้วยฟังก์ชันนี้