लिस्ट और डिक्शनरी
कई वैल्यूज़ को एक साथ रखें। एक लिस्ट चीज़ों को क्रम में रखती है; एक डिक्शनरी हर नाम को किसी वैल्यू से जोड़ती है, जैसे कोई प्राइस लिस्ट।
60 सेकंड में
लिस्ट और डिक्शनरी
कई वैल्यूज़ को एक साथ रखें। एक लिस्ट चीज़ों को क्रम में रखती है; एक डिक्शनरी हर नाम को किसी वैल्यू से जोड़ती है, जैसे कोई प्राइस लिस्ट।
लिस्ट
marks = [78, 92, 65, 88]
print(marks[0]) # first item: 78
print(marks[-1]) # last item: 88
print(len(marks)) # how many items: 4
marks.append(71) # add one to the end
print(marks)
marks[2] = 67 # change the third item
print(marks)| आप चाहते हैं… | कोड | [78, 92, 65] के लिए नतीजा |
|---|---|---|
| पहला आइटम पाना | marks[0] | 78 |
| आखिरी आइटम पाना | marks[-1] | 65 |
| आइटम की गिनती करना | len(marks) | 3 |
| एक आइटम जोड़ना | marks.append(50) | [78, 92, 65, 50] |
| जांचें कि कोई वैल्यू मौजूद है या नहीं | 92 in marks | True |
| सॉर्ट करना | sorted(marks) | [65, 78, 92] |
stations = ["Chennai", "Katpadi", "Bengaluru"]। और आप for के साथ लिस्ट पर लूप चला सकते हैं, जैसा आपने पिछले पाठ में किया था।डिक्शनरी
prices = {"milk": 30, "bread": 45, "eggs": 7} # made-up prices in rupees
print(prices["bread"]) # look up by key: 45
prices["rice"] = 60 # add a new item
prices["milk"] = 32 # change a price
print(prices)
print("sugar" in prices) # is this key there? False
print(prices.get("sugar", 0)) # get with a default: 0prices["sugar"], प्रोग्राम KeyError के साथ रुक जाता है। पहले in से जांचें, या .get(key, default) का इस्तेमाल करें, जो एरर देने के बजाय डिफ़ॉल्ट वैल्यू देता है।डिक्शनरी पर लूप चलाना
prices = {"milk": 30, "bread": 45, "eggs": 7}
for item, price in prices.items():
print(f"{item:<6} Rs {price}")लिस्ट और डिक्शनरी एक साथ
prices = {"milk": 30, "bread": 45, "eggs": 7}
cart = ["milk", "eggs", "eggs", "bread"]
total = 0
for item in cart:
total += prices[item]
print("Bill: Rs", total)डिक्शनरी से गिनती करना
cart = ["milk", "eggs", "eggs", "bread", "eggs"]
counts = {}
for item in cart:
counts[item] = counts.get(item, 0) + 1
print(counts)- क्रम (order) मायने रखता हो: जैसे एक ओवर की गेंदें, किसी रूट के स्टेशन
- एक ही वैल्यू एक से ज़्यादा बार आ सकती हो
- आप चीज़ों को पोज़ीशन से खोजते हों: पहला, आखिरी, तीसरा
- आप चीज़ों को नाम या कोड से खोजते हों: दूध की कीमत, आशा के नंबर
- हर 'की' सिर्फ़ एक ही बार आती हो
- आप नाम के हिसाब से चीज़ों को गिनना या ग्रुप में बांटना चाहते हों
और देखें और पढ़ें
लैब
दुकान का एक बिल कैलकुलेटर जो प्राइस बोर्ड से कार्ट की कुल रकम जोड़ता है, और हर आइटम को गिनता है।
समस्या
आप एक छोटी दुकान चलाते हैं। इन दो फ़ंक्शनों को पूरा करें:
bill_total(cart, prices):cartआइटम के नामों की एक लिस्ट है (एक ही आइटम एक से ज़्यादा बार आ सकता है) औरpricesकीमतों की एक डिक्शनरी है। कुल रकम रुपयों में रिटर्न करें। अगर कोई आइटम प्राइस बोर्ड पर नहीं है, तो उसे छोड़ दें (कुछ न जोड़ें) और एक छोटा मैसेज प्रिंट करें जैसेNo price for gold, ताकि दुकानदार को पता चल सके।count_items(cart): एक डिक्शनरी रिटर्न करें जो दिखाए कि कार्ट में हर आइटम की कितनी संख्या है, उदाहरण के लिए{"milk": 2, "bread": 1}।
टेस्ट करने के लिए Run दबाएं, फिर Check करें। यहाँ तक पहुँचने के लिए बहुत बढ़िया: असली बिलिंग सॉफ़्टवेयर की शुरुआत ऐसे ही होती है!
प्रैक्टिस लैब
कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।
कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1पहले जांचे बिना <code>total += prices[item]</code> लिखना जोखिम भरा क्यों है?दिखाएं
अगर कोई ग्राहक ऐसी चीज़ खरीदता है जो प्राइस बोर्ड पर नहीं है, तो prices[item] एक KeyError देता है और पूरा बिल रुक जाता है। if item in prices से जांच करने पर, या prices.get(item) का इस्तेमाल करने पर प्रोग्राम छूटी हुई कीमत को आसानी से संभाल लेता है और दुकानदार को बता देता है।
Q2अपने दोनों फ़ंक्शनों का इस्तेमाल करके, आप हर आइटम के लिए एक लाइन वाला सही बिल कैसे प्रिंट कर सकते हैं, जैसे <code>eggs x2 = Rs 14</code>?दिखाएं
पहले counts = count_items(cart) निकालें। फिर लूप चलाएं: for item, n in counts.items(): और, अगर आइटम की कीमत मौजूद है, तो प्रिंट करें f"{item} x{n} = Rs {n * prices[item]}"। आखिर में bill_total(cart, prices) प्रिंट करें। दोनों जवाब एक ही डेटा से आते हैं, इसलिए वे मेल खाने चाहिए।
अक्सर पूछे जाने वाले सवाल
गिनती 0 से क्यों शुरू होती है?
इंडेक्स पायथन को बताता है कि शुरुआत से कितने कदम आगे बढ़ना है। पहला आइटम 0 कदम की दूरी पर होता है। आपको जल्दी ही इसकी आदत हो जाएगी। नेगेटिव इंडेक्स पीछे से गिने जाते हैं: -1 आखिरी आइटम होता है।
क्या किसी डिक्शनरी में एक ही 'की' वाले दो आइटम हो सकते हैं?
नहीं। हर 'की' यूनीक होती है। अगर आप prices["milk"] दोबारा सेट करते हैं, तो पुरानी वैल्यू बदल जाती है। अगर आपको एक ही की के लिए कई वैल्यूज़ रखनी हैं, तो वैल्यू के तौर पर एक लिस्ट स्टोर करें।
sorted(marks) और marks.sort() में क्या अंतर है?
sorted(marks) आपको एक नई सॉर्ट की हुई लिस्ट देता है और मूल (original) लिस्ट को वैसे ही रहने देता है। marks.sort() मूल लिस्ट को ही सॉर्ट कर देता है और कुछ भी रिटर्न नहीं करता। दोनों ही काम के हैं।
क्या किसी लिस्ट में अलग-अलग तरह का डेटा हो सकता है?
हाँ, उदाहरण के लिए ["Asha", 14, 87.5]। लेकिन जब सभी आइटम एक ही तरह के हों, तब लिस्ट इस्तेमाल करना सबसे आसान होता है। अलग-अलग नाम वाले हिस्सों के रिकॉर्ड के लिए, डिक्शनरी ज़्यादा साफ़ और बेहतर होती है: {"name": "Asha", "age": 14}।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।