how to goup items in a list of dictionaries by matching values in python -
मेरे पास शब्दकोशों की एक सरणी है:
dictionaty = [['' name ' : '' आग ',' कमांड ':' 1; 2; 3; 4 '}, {' नाम ':' मस्तिष्क ',' कमांड ':' 2; 2; 3; 4 '}, {' name ':' शब्द ',' कमांड ':' 1; 3; 4; 5 '}, {' नाम ':' सेलफोन ',' कमांड ':' 6; 1; 3; 4 '}, {' नाम ':' महासागर ' , 'कमांड': '9; 3; 7; 4'},
मैं उन शब्दकोशों को कैसे प्राप्त करूं जिनके पास दूसरे और तीसरे मान के साथ ';' क्रमशः बराबर? उदाहरण के लिए: 'कमांड': '1; 2; 3; 4' बराबर है 'कमांड': '2; 2; 3; 4'
आप उपयोग कर सकते हैं आप लैम्ब्डा
अभिव्यक्ति का निर्माण कर सकते हैं जो कि 'कमांड'
कुंजी से संबंधित मान की खोज करती है, फिर [1]
और पाता है [2]
';'
चरित्र पर विभाजन के तत्व।
d = [['' नाम ':' आग ',' कमांड ': '1; 2; 3; 4'}, {'नाम': 'मस्तिष्क', 'कमांड': '2; 2; 3; 4'}, {'नाम': 'शब्द', 'कमांड': '1 ; 3; 4; 5 '}, {' नाम ':' सेलफोन ',' कमांड ':' 6; 1; 3; 4 '}, {' नाम ':' महासागर ',' कमांड ':' 9; 3 ; 7; 4 '}] आयात itertools groups = itertools.groupby (d, लैम्ब्डा i: i [' command ']। विभाजित ('; ') [1: 3]) कुंजी के लिए, समूहों में समूह: प्रिंट (सूची ( समूह))
आउटपुट
[['' नाम ':' आग ',' कमांड ':' 1; 2; 3; 4 '}, {'नाम': 'मस्तिष्क', 'कमांड': '2; 2; 3; 4'}] [['नाम': 'शब्द', 'आज्ञा': '1; 3; 4; 5'}] [ {'नाम': 'सेलफोन', 'कमांड': '6; 1; 3; 4'}] [['नाम': 'महासागर', 'कमांड': '9; 3; 7; 4'}] < / कोड> एक से अधिक सदस्य वाले समूहों को खोजने के लिए, आपको एक और कदम की आवश्यकता है:
कुंजी के लिए, समूहों में समूह: GroupList = सूची (समूह) अगर लेन (समूह सूची) & gt; 1: प्रिंट (समूह लिस्ट) [['कमांड': '1; 2; 3; 4', 'नाम': 'आग'}, {'कमांड': '2; 2; 3; 4', 'नाम' 'मस्तिष्क'}]
Comments
Post a Comment