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

ลบรายการออกจากพจนานุกรมขณะวนซ้ำใน Python


พจนานุกรมหลามคือคอลเล็กชันที่ไม่เรียงลำดับ เปลี่ยนแปลงได้ และจัดทำดัชนี พวกเขามีคีย์และค่าและแต่ละรายการถูกอ้างอิงโดยใช้คีย์ ในบทความนี้ เราจะมาสำรวจวิธีการลบรายการจากพจนานุกรม

การใช้เดลกับคีย์

ในแนวทางนี้ เราจะเก็บค่าคีย์ที่จำเป็นในการลบ เมื่อเราใช้ฟังก์ชัน del คู่ค่าของคีย์สำหรับคีย์เหล่านั้นจะถูกลบออก

ตัวอย่าง

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with value in 2,3.
to_del = [key for key in ADict if key in(2,3)]

# Delete keys
for key in to_del: del ADict[key]

# New Dictionary
print(ADict)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

{1: 'Mon', 4: 'Thu', 5: 'Fri'}

การใช้รายการกับคีย์

เราสามารถสร้างรายการที่มีคีย์จากพจนานุกรมและใช้นิพจน์เงื่อนไขเพื่อเลือกคีย์ที่จะใช้สำหรับการลบ ในตัวอย่างด้านล่าง เราได้พิจารณาเฉพาะคีย์ที่มีค่าคู่โดยการเปรียบเทียบส่วนที่เหลือจากการหารด้วยสองค่าเท่ากับศูนย์

ตัวอย่าง

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with even value
for key in list(ADict):
if (key%2) == 0:
del ADict[key]

# New Dictionary
print(ADict)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

{1: 'Mon', 3: 'Wed', 5: 'Fri'}

การใช้รายการเพื่อลบ

แทนที่จะใช้คีย์ เรายังสามารถใช้รายการในพจนานุกรมเพื่อลบค่าต่างๆ ได้ แต่หลังจากเลือกรายการแล้ว เราต้องใช้คีย์ทางอ้อมเพื่อเลือกรายการที่จะลบ

ตัวอย่าง

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

NewDict = []
# Get keys with even value
for key,val in ADict.items():
if val in('Tue','Fri'):
NewDict.append(key)

for i in NewDict:
del ADict[i]

# New Dictionary
print(ADict)

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

{1: 'Mon', 3: 'Wed', 4: 'Thu'}