@Marcin's answer यह सब को शामिल किया गया, लेकिन सिर्फ मामले में किसी को एक वास्तविक उदाहरण देखना चाहता है, मैं दो नीचे जोड़ें:
मान लीजिए कि आप सेट
d = {'key1': {'a', 'b', 'c'}, 'key2': {'foo', 'bar'}, 'key3': {'so', 'sad'}}
के निम्नलिखित शब्दकोश करते हैं और आप चाहते हैं एक नया शब्दकोश जिसका कुंजी से संकेत मिलता है स्ट्रिंग 'a'
मूल्यों में है या नहीं निहित है कि क्या बनाते हैं, आप उपयोग कर सकते हैं
dout = {"a_in_values_of_{}".format(k) if 'a' in v else "a_not_in_values_of_{}".format(k): v for k, v in d.items()}
जो पैदावार
{'a_in_values_of_key1': {'a', 'b', 'c'},
'a_not_in_values_of_key2': {'bar', 'foo'},
'a_not_in_values_of_key3': {'sad', 'so'}}
अब आप इस
d1 = {'bad_key1': {'a', 'b', 'c'}, 'bad_key2': {'foo', 'bar'}, 'bad_key3': {'so', 'sad'}}
d2 = {'good_key1': {'foo', 'bar', 'xyz'}, 'good_key2': {'a', 'b', 'c'}}
की तरह दो शब्दकोशों है और आप अगर वहाँ संबंधित मान समान हैं, तो आप
कर सकता है
d2
की चाबी से
d1
में कुंजी बदलना चाहते हैं लगता है जाने
# here we assume that the values in d2 are unique
dout2 = {d2.keys()[d2.values().index(v1)] if v1 in d2.values() else k1: v1 for k1, v1 in d1.items()}
जो
देता है
रूप @Marcin ने कहा, एक '' dict' कुंजी से बना है: मान' तत्वों, तुम यहाँ का निर्माण नहीं कर रहे हैं एक 'dict' लेकिन एक' set' (देखें [सेट शाब्दिक] (http: // डॉक्स .python.org/dev/whatsnew/2.7.html # अन्य-भाषा-परिवर्तन))। – MatToufoutu