2012-12-15 7 views
18

मैं Google कोड कक्षा से पायथन सीख रहा हूं। मैं अभ्यास की कोशिश कर रहा हूँ।ValueError: अनपैक करने के लिए 0 से अधिक मानों की आवश्यकता है (पायथन सूची)

def front_x(words): 
    x_list, ord_list = [] 
    for word in words: 
    if word[0] == 'x': 
     x_list.append(word) 
    else: 
     ord_list.append(word) 
    return sorted(x_list) + sorted(ord_list)  

मेरा मानना ​​है कि एक पंक्ति पर दो खाली सूचियों को शुरू करने के कारण त्रुटि फेंक दी गई है। यदि उन्हें अलग-अलग लाइनों पर प्रारंभ करें, तो कोई और त्रुटि नहीं होती है। क्या यही कारण है?

+12

Downvoters उम्मीद कर रहे हैं एक टिप्पणी – kunaguvarun

उत्तर

31

आप टपल असाइनमेंट उपयोग करने के लिए कोशिश कर रहे हैं परिवर्तित करें:

x_list, ord_list = [] 

आप शायद कई काम का उपयोग करने के लिए होती:

x_list = ord_list = [] 

जो क्या काम नहीं चलेगा आप इसकी उम्मीद है; का उपयोग करने के बजाय निम्नलिखित:

x_list, ord_list = [], [] 

या, सबसे अच्छा अभी भी:

x_list = [] 
ord_list = [] 

चर नाम की एक अल्पविराम द्वारा पृथक सूची का उपयोग कर, अजगर वहाँ उम्मीद दाएँ हाथ की ओर पर अभिव्यक्ति के एक दृश्य होने के लिए जो संख्या चर से मेल खाता है; निम्नलिखित भी कानूनी होंगे:

two_lists = ([], []) 
x_list, ord_list = two_lists 

इसे टुपल अनपॅकिंग कहा जाता है। , तो दूसरी ओर, आप एक खाली शाब्दिक सूची (x_list = ord_list = []) तो साथ कई काम उपयोग करने का प्रयास दोनों x_list और ord_listही सूची की ओर इशारा करते किया जाएगा और एक चर के माध्यम से किए गए परिवर्तनों अन्य पर दिखाई देगा चर:

>>> x_list = ord_list = [] 
>>> x_list.append(1) 
>>> x_list 
[1] 
>>> ord_list 
[1] 

बेहतर चीजें एकदम साफ रखने के लिए और दो अलग कार्य का उपयोग करें, प्रत्येक चर अपने स्वयं के खाली सूची दे रही है।

+0

+1 @ मार्टिजन पीटर ने इससे मदद की। क्या आप विस्तार से बता सकते हैं कि आपने जिस तरह से विभिन्न दृष्टिकोणों को रैंक किया था। इस पर कुछ बेहतरीन अभ्यास सीखने की कोशिश कर रहा है। – vanilla

+0

@musked: सुनिश्चित नहीं है कि आपका क्या मतलब है। सबसे अच्छा मेरे नाम पर दो दृष्टिकोण हैं, एक टुपल असाइनमेंट का उपयोग कर रहा है, और एक दो अलग असाइनमेंट का उपयोग कर रहा है। मैं उत्तरार्द्ध का उपयोग करता हूं क्योंकि यह अधिक स्पष्ट, पठनीयता मायने रखता है। –

+0

हाँ, जो वास्तव में मेरा मतलब था, इसलिए आपने पठनीयता के अनुसार रैंक किया, मैंने सोचा कि कुछ ऐसा हो सकता है जिसे मैं याद करता हूं। – vanilla

4

लाइन

x_list, ord_list = [] 

to 

x_list, ord_list = [], [] 
+0

छोड़ दें यह सबसे सरल होगा मैं जो करना चाहता हूं उसके बराबर। धन्यवाद। – kunaguvarun

0
समारोह समारोह में होने की उम्मीद मूल्यों के साथ मेल नहीं खाती है

वापसी प्रकार ...

जांच चर की संख्या समारोह और चर से लौटे आप

संबंधित मुद्दे