• 1401/06/03

dictionary comprehension :

با سلام و وقت بخیر و ممنون از آموزش خیلی خوبتون.

در مورد dictionary comprehension قسمت آخر جلسه در مورد  تغییر value توضیح داده شد. 

حالا سوال من اینه که میشه key رو هم تغییر داد؟

مثلا همون مثال آخر جلسه در مورد نوشتن زوج و فرد برای value رو میشه برای key هم نوشت؟

مثلا چرا این دستور جواب درست رو نمیده؟

ممنون از شما.

simpleNumbers={("even" if num%2==0 else "odd"):num for num in [1,2,3,4,5]}
print(simpleNumbers)
  • 1401/06/05
  • ساعت 11:31

با سلام.

 

در این کد (که باید به شکل زیر اصلاح شود) شما key را تغییر نمی دهید بلکه تنها value ها را چنانچه زوج یا فرد باشند، به key متناسب با آن اختصاص می دهید:

simpleNumbers={"even" if num%2==0 else "odd":num for num in [1,2,3,4,5]}

print(simpleNumbers)

که خروجی آن هم:

{'odd': 5, 'even': 4}

خواهد بود. چون با پیمایش حلقه، آخرین عدد زوج 4 و آخرین عدد فرد 5 است که به درستی به key مربوطه اختصاص یافته است.

 

 

روشهای مختلفی برای تغییر key در dictionary وجود دارد یکی از آنها به این صورت است:

your_dictionary[new_key] = your_dictionary[old_key]
del your_dictionary[old_key]

 

موفق باشید.


logo-enamadlogo-samandehi