मान लें कि हमारे पास इस तरह एक contact_list है:

[["Joey", 30080],["Miranda"],["Lisa", 30081]]

तो अनिवार्य रूप से "मिरांडा" में ज़िपकोड नहीं है, लेकिन जिस फ़ंक्शन के साथ मैं परिभाषित करना चाहता हूं, मैं चाहता हूं कि यह स्वचालित रूप से इसका पता लगाए और उसके मूल्य स्लॉट में "कोई नहीं" जोड़ें, जैसे:

{
"Joey": 30080,
"Miranda": None,
"Lisa": 30081
}

अब तक मेरे पास यह है, जो सिर्फ सूची को एक ताना में परिवर्तित करता है:

def user_contacts(contact_list):
    dict_contact = dict(contact_list)
    print(dict_contact)

सुनिश्चित नहीं है कि मैं यहाँ से कहाँ जाता हूँ, जहाँ तक "मिरांडा" के लिए कोई नहीं जोड़ने के लिए कोड में लिखना है। वर्तमान में, मुझे केवल एक त्रुटि मिलती है जो कहती है कि पहले तत्व ("मिरांडा") को एक के बजाय दो लंबाई की आवश्यकता होती है।

आखिरकार मैं परिभाषित फ़ंक्शन में उपरोक्त की तरह किसी भी सूची को पास करना चाहता हूं: user_contacts और, फिर से, आउटपुट के रूप में उपरोक्त शब्दकोश प्राप्त करने में सक्षम हो।

user_contacts([["Joey", 30080],["Miranda"],["Lisa", 30081]]) 
0
CodingNoob 20 मई 2020, 13:31

2 जवाब

ये कोशिश करें:

def user_contacts(contact_list):
    dict_contact = dict((ele[0], ele[1] if len(ele) > 1 else None) for ele in 
    contact_list)
    print(dict_contact)
0
Nitta 20 मई 2020, 13:48

तो यहाँ आप क्या कर सकते हैं। आप यह देखने के लिए जांच कर सकते हैं कि आपकी सूची में किसी निश्चित तत्व का len अपेक्षाओं को पूरा करता है (इस मामले में, नाम और ज़िप कोड के लिए 2)। तो अगर यह उम्मीदों में विफल रहता है, तो आप "कोई नहीं" जोड़ सकते हैं:

contacts = [["Joey", 30080], ["Miranda"], ["Lisa", 30081]]
contacts_dict = {}
for c in contacts:
    if len(c) < 2:
        c.append('None')
    contacts_dict.update({c[0]: c[1]})
print(contacts_dict)

और आउटपुट है:

{'Joey': 30080, 'Miranda': 'None', 'Lisa': 30081}
0
Mahdi_J 20 मई 2020, 13:48