اذهب إلى المحتوى

السؤال

نشر

أريد أن أمرر هذا القاموس { k1: v1, k2: v2 ... } وأريد الحصول على { k1: f(v1), k2: f(v2) ... } حيث أن f هي دالة.
فهل هنالك دالة معينة للقيام بذلك؟ أريد القيام بشيء مثل هذا:

dict([(k, f(v)) for (k, v) in my_dictionary.iteritems()])

Recommended Posts

  • 0
نشر

لا توجد دالة في لغة بايثون للدوران حول القيم في القاموس، لكن أسهل طريقة لفعل ذلك هي استخدام طريقة "تفهيم القاموس" (dict comprehension) كما في المثال التالي:

my_dictionary = {k: f(v) for k, v in my_dictionary.items()}

في الإصدار 2.7 من بايثون استخدم iteritems() بدلا من items() لتوفير الذاكرة، كما أن صياغة "تفهيم القاموس" لم تعرف حتى الإصدار 2.7 من بايثون.
لا توجد كذلك دالة في لغة بايثون للدوران في القائمة لذلك يمكنك في هذه الحالة استخدام map().
مثال لاستخدام map() مع المثال السابق:

my_dictionary = dict(map(lambda (k,v): (k, f(v)), my_dictionary.iteritems()))

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...