วิธี sample ของโมดูล random
วิธี sample ของโมดูล random
ส่งคืนตัวอย่างองค์ประกอบที่สุ่มจาก
ลำดับ ในพารามิเตอร์แรก
ของเมธอด เราระบุลำดับ ใน
พารามิเตอร์ที่สอง - จำนวนองค์ประกอบ
ที่เราต้องการเลือกแบบสุ่ม
ในพารามิเตอร์ที่มีชื่อที่ไม่บังคับที่สาม
counts เราสามารถกำหนดรายการ
องค์ประกอบสำหรับทำซ้ำได้ สิ่งนี้ช่วยให้
เพิ่มโอกาสในการเลือกองค์ประกอบที่กำหนด
โปรดทราบว่า
พารามิเตอร์ที่สามของเมธอดถูกเพิ่มเฉพาะ
ตั้งแต่ Python เวอร์ชัน 3.9 เป็นต้นไป
ไวยากรณ์
import random
random.sample(ลำดับ, จำนวนองค์ประกอบ, [counts=การทำซ้ำ])
ตัวอย่าง
มาดึงองค์ประกอบแบบสุ่มสามรายการจาก รายการกัน:
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
ผลลัพธ์จากการรันโค้ด:
[2, 1, 5]
ตัวอย่าง
มาลองสุ่มตัวอย่าง องค์ประกอบแบบสุ่มจากทูเพิลกัน:
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
ผลลัพธ์จากการรันโค้ด:
[3, 2]
ตัวอย่าง
ยังสามารถเลือกองค์ประกอบจาก
ลำดับที่ถูกสร้างโดย
ฟังก์ชัน range ได้:
print(random.sample(range(0, 10), 3))
ผลลัพธ์จากการรันโค้ด:
[0, 8, 9]
ตัวอย่าง
ตอนนี้มาลองนำรายการและใช้
พารามิเตอร์ counts กำหนดการทำซ้ำ
สำหรับแต่ละองค์ประกอบจากรายการ ในกรณีของเรา
ให้องค์ประกอบแรกทำซ้ำ
สองครั้ง ที่สอง - สามครั้ง และที่สาม - สี่
ครั้ง นอกจากนี้ยังจำเป็นต้องระบุชื่อพารามิเตอร์
k สำหรับแสดงจำนวนองค์ประกอบ:
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
โค้ดนี้เทียบเท่ากับสิ่งต่อไปนี้:
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # รายการจริง ๆ เป็นแบบนี้
print(random.sample(lst, 3))
ตัวอย่าง
ตอนนี้มาลองดึงองค์ประกอบ จากเซ็ตกัน:
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
จะส่งกลับข้อผิดพลาดต่อไปนี้:
[5, 2]
DeprecationWarning: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
print(random.sample(st, 2))
เนื่องมาจากตั้งแต่เวอร์ชัน Python
3.9 ไม่ได้เตรียมความสามารถ
ในการสุ่มตัวอย่างจากเซ็ตไว้