सूचियाँ और सांख्यिकी
सूची कई मानों को एक नाम में रखती है, जैसे सप्ताह भर की पैदल कदमों की गिनती, परीक्षा के अंक या महीने की रसीदें। सूची से कुल, औसत और मानों का फैलाव निकाल सकते हैं तथा ज़रूरी मान चुन सकते हैं।
यह पेज सूची लिखना और इंडेक्स से मान लेना, सारांश आँकड़े, ऊपर की पंक्तियाँ जोड़ना, टैग लगाकर अलग-अलग जगह की पंक्तियों का कुल निकालना, क्रम लगाना, हिस्सा लेना, map और filter से सूची बदलना तथा पूरी सूची पर अंकगणित समझाता है। आँकड़ों के कॉलम का सार निकालने में इसका उपयोग करें। पंक्तियों की सूची आव्यूह भी बन सकती है; उसके लिए अलग पेज है।
एक सूची लिखना
मानों को वर्ग कोष्ठक में रखें, अल्पविराम से अलग करेंः
scores = [72, 85, 91, 64, 88] परिणाम [72, 85, 91, 64, 88]scores[0] परिणाम 72scores[4] परिणाम 88length(scores) परिणाम 5सूची में मान की स्थिति उसका इंडेक्स है, जिसे सूची के बाद वर्ग कोष्ठकों में लिखते हैं। इंडेक्स शून्य से शुरू होते हैं, इसलिए scores[0] पहला और scores[4] पाँचवाँ अंक है। आखिरी तत्व का इंडेक्स हमेशा length(scores) - 1 है। ऋणात्मक, भिन्नात्मक या बहुत बड़ा इंडेक्स त्रुटि देता है; वह पीछे से गिनने या सूची में घूमकर लौटने का तरीका नहीं है।
तत्व गणना, इकाइयों के साथ मात्रा, या अन्य सूचियां हो सकती हैं:
[2 * 45, 60 + 15] परिणाम [90, 75][1.5 kg, 750 g] परिणाम [1.5 kg, 750 g][[1, 2], [3, 4]][1][0] परिणाम 3नेस्टेड सूचियों के साथ, पहला सूचकांक आंतरिक सूची चुनता है और दूसरा इसमें से एक मान चुनता है: [1] [3, 4] का चयन करता है, फिर [0] 3 का चयन करता है।
सूची के अंदर हज़ारों के विभाजक काम करते हैं, इसलिए आँकड़े जैसे लिखे हों वैसे पेस्ट कर सकते हैं। अलग-अलग मानों के बीच अल्पविराम के बाद स्पेस रखें। जिस अल्पविराम के तुरंत बाद तीन अंक हों, वह संख्या का हिस्सा रहता है:
salaries = [£32,000, £41,500, £38,250] परिणाम [£32,000.00, £41,500.00, £38,250.00]average(salaries) परिणाम £37,250.00देखने के लिए कुछ चीजेंः
- बिना रिक्त स्थान के, प्रत्येक कॉमा अलग‑अलग करता है, इसलिए
[8200,10400]में दो मान होते हैं।[100,200,300]जैसी सूची एक संख्या या तीन हो सकती है, इसलिए Varlig एक त्रुटि दिखाता है जो दोनों को स्पष्ट रूप से बताती है। - उत्तर हजारों विभाजक और प्रत्येक अल्पविराम के बाद एक स्थान दिखाते हैं, इसलिए
[8,200, 10,400]दो मानों की एक सूची है। - एक सूची में अधिकतम 1,024 मान होते हैं।
सारांश आंकड़े
scores = [72, 85, 91, 64, 88]sum(scores) परिणाम 400average(scores) परिणाम 80median(scores) परिणाम 85min(scores) परिणाम 64max(scores) परिणाम 91count(scores) परिणाम 5mean और avg, average के दूसरे नाम हैं; total, sum का; stdev, stddev का; और count, length का। इसलिए स्प्रेडशीट की आदतें यहाँ भी काम आती हैं। product सभी मानों का गुणनफल निकालता है। सबसे अधिक बार आने वाला मान, प्रतिशतक या चतुर्थक निकालने के लिए नीचे देखें।
एक नामित सूची के साथ, आप शब्दों में आंकड़े भी लिख सकते हैंः
scores = [72, 85, 91, 64, 88]average of scores परिणाम 80total of scores परिणाम 400sum of, mean of, median of, min of, max of और count of समान रूप से काम करते हैं। of के बाद, एक नाम या स्वयं मान लिखें, कॉमा द्वारा अलग किए गए, गोल कोष्ठक के साथ या बिना। वर्ग कोष्ठक में मानों के लिए, फ़ंक्शन रूप का उपयोग करें, जैसे average([72, 85, 91]).
अधिकांश आंकड़े, जिनमें sum, product, average, median, min, max, count और stddev शामिल हैं, सूची के बजाय अलग-अलग मान भी स्वीकार करते हैं:
max(72, 85, 91) परिणाम 91sum(1, 2, 3, 4) परिणाम 10average of 70, 85, 91 परिणाम 82mean of (1,2,3) परिणाम 2average(1,200, 1,800) परिणाम 1,500ऊपर की पंक्तियों को जोड़ना
एक पंक्ति जो केवल sum, total, subtotal, grand total, average, max या min कहती है, ऊपर दिए गए उत्तरों के लिए वह संख्या निकालती है। यह अपना ही खंड कवर करती है, जो पिछले कुल से शुरू होता है, एक --- विभाजक या एक # शीर्षक, इसलिए नोट का प्रत्येक भाग टाइप करते समय अपनी संख्या प्राप्त करता है। यह एक पंक्ति के संदर्भ मेनू में Subtotal विकल्प की तरह काम करता है:
# Groceriesbread = £1.20milk = £1.45eggs = £2.30total परिणाम £4.95# Householdbin bags = £3.50washing up liquid = £1.80total परिणाम £5.30कुल निकालने वाले शब्द के साथ लेबल, अपना नाम, इकाई रूपांतरण या टिप्पणी जोड़ सकते हैं, ताकि पंक्ति बाकी नोट की तरह सहज पढ़ी जाए:
tickets = £64train = £41.20Estimated total: total परिणाम £105.20est = total परिणाम को नाम में सहेजता है और total // still to book उसके पास टिप्पणी जोड़ता है। total in kg दिखाने से पहले रूपांतरण करता है; किसी अनुभाग में ग्राम और किलोग्राम मिले हों तो यह उपयोगी है। ऑपरेटर के पास सांख्यिकीय शब्द वही मान देता है जो अकेली पंक्ति में देता, इसलिए £5 + subtotal संचयी योग में £5 जोड़ता है।
# Parcels12 kg परिणाम 12 kg4 kg परिणाम 4 kg850 g परिणाम 850 gtotal in kg परिणाम 16.85 kgmax परिणाम 12 kgयदि आपने sum या total नाम का मान दिया है, तो लाइन आपके मान को प्रदर्शित करती है। जब काम करने के लिए ऊपर कुछ नहीं होता है, तो लाइन Unsupported: no amounts above to add up कहती है, बजाय इसके कि एक खाली या शून्य दिखाए, जो आमतौर पर एक शीर्षक को दर्शाता है जिसे आप भूल गए थे।
हर रकम एक ही बार गिनी जाती है। अनुभाग में आगे की कोई पंक्ति नाम वाली रकम से गणना करे, तो कुल में दोनों के बजाय वह नई पंक्ति गिनी जाती है। इसलिए प्रति इकाई कीमत और मात्रा वाली खरीदारी सूची का कुल वास्तविक भुगतान बताता है:
shirt = £18.50shorts = £99 * shirt परिणाम £166.5010 * shorts परिणाम £90.00fee = £40vat = fee * 20% परिणाम £8.00total परिणाम £304.50shirt और shorts उन दो लाइनों के भीतर गिना जाता है जिनका उपयोग किया जाता है, जबकि fee कुल में ही रहता है क्योंकि vat केवल उसका एक हिस्सा लेता है।
नामों की पूरी शृंखला में यही नियम चलता है। किसी रकम के हिस्से बनाकर फिर उन्हें जोड़ने पर, हिस्सों को जोड़ने वाली पंक्ति भी गिनी जाती है और वह मूल रकम भी जिसके ये हिस्से थे:
pot = £9001st = 50% of pot परिणाम £450.002nd = 30% of pot परिणाम £270.003rd = 20% of pot परिणाम £180.001st + 2nd + 3rd परिणाम £900.00total परिणाम £900.00केवल एक ही प्रकार के मान जोड़े जाते हैं। ऊपर रकम या इकाई वाली मात्रा हो तो प्रतिशत, दरें और साधारण गिनतियाँ छोड़ दी जाती हैं; त्रुटि वाली पंक्ति भी नहीं जुड़ती। कॉलम में पेस्ट की गई बिना मुद्रा संकेत वाली संख्याएँ भी जोड़ी जाती हैं अगर वे रकम की तरह दो दशमलव स्थानों तक लिखी हों। विनिमय दर या गुणक की तरह अधिक दशमलव अंकों वाली संख्या छोड़ दी जाती है। कुल का संकेत छोड़ी गई हर पंक्ति बताता है, जैसे “Leaves out line 3 (people = 2)” या “Leaves out line 2 (an error)”, ताकि शामिल मान साफ़ दिखें।
नामों से गणना करने वाली पंक्ति के नीचे और कुल के ठीक ऊपर बिना नाम की दो या अधिक रकम हों, तो केवल उनकी सूची का योग निकलता है। इससे नोट के ऊपर निकला बजट नीचे की सूची में दोबारा नहीं गिना जाता:
budget = £18,000remaining = budget - £6,388.25 परिणाम £11,611.75- skip hire £250 परिणाम £250.00- deep clean £120 परिणाम £120.00subtotal परिणाम £370.00अलग-अलग जगह की पंक्तियों का कुल निकालने के लिए उन्हें टैग दें।
सबसे अधिक बार आने वाले मान
mode सबसे अधिक बार आने वाला अकेला मान देता है। सबसे अधिक आवृत्ति पर बराबर आने वाले सभी मानों की सूची के लिए modes इस्तेमाल करें:
marks = [3, 4, 4, 5, 5, 5, 6]mode(marks) परिणाम 5modes([1, 1, 2, 2, 3]) परिणाम [1, 2]mode तभी उत्तर देता है जब एक मान बाकी सभी से अधिक बार आए। कुछ भी न दोहराया जाए या कई मानों की अधिकतम आवृत्ति बराबर हो, तो किसी एक को चुनने के बजाय यही स्थिति बताता है:
mode([1, 2, 3]) परिणाम Unsupported: No value repeats, so this list has no mode; use median or average insteadप्रतिशतक और चतुर्थक
percentile(list, rank) में rank 0 से 100 तक होता है। यह दो निकटतम अवलोकनों के बीच अंतर्वेशन करके उस प्रतिशतक का मान देता है। quartile(list, k) यही काम चौथाई हिस्सों पर करता है; k 0 से 4 तक होता है। इसलिए quartile(list, 1) और percentile(list, 25) समान हैं:
scores = [72, 85, 91, 64, 88]percentile(scores, 50) परिणाम 85percentile(scores, 25) परिणाम 72quartile(scores, 3) परिणाम 88quartile(scores, 4) परिणाम 91percentile([1, 2, 3, 4], 25) परिणाम 1.75quartile([1, 2, 3, 4], 3) परिणाम 3.2550वां प्रतिशतक माध्यिका है, और 0वां और 100वां — quartile(list, 0) और quartile(list, 4) — सबसे छोटे और सबसे बड़े मान हैं, जो min और max के समान हैं। इसकी सीमा से बाहर का रैंक एक त्रुटि है, न कि वह निकटतम मान जो फिट हो सके:
percentile([1, 2, 3, 4], 101) परिणाम Unsupported: A percentile is between 0 and 100quartile([1, 2, 3, 4], 5) परिणाम Unsupported: A quartile is 0, 1, 2, 3 or 4प्रसार: विचरण और मानक विचलन
scores = [72, 85, 91, 64, 88]variance(scores) परिणाम 132.5stddev(scores) to 1 dp परिणाम 11.5दोनों नमूने के आँकड़े हैं: वे मानों की संख्या से एक कम (n - 1) से भाग देते हैं। बड़े समुच्चय से लिए गए नमूने के लिए सामान्यतः यही रूप इस्तेमाल होता है। कम से कम दो मान चाहिए। किसी भी आँकड़े के बाद to 1 dp लगाकर उसे राउंड कर सकते हैं।
सूची नमूना नहीं बल्कि पूरा समुच्चय हो तो समष्टि वाले रूप इस्तेमाल करें। वे n से भाग देते हैं और उन्हें केवल एक मान भी पर्याप्त है:
# Train delays in minutesdelays = [2, 4, 4, 4, 5, 5, 7, 9]sample_variance(delays) परिणाम 4.5714285714population_variance(delays) परिणाम 4sample_stddev(delays) परिणाम 2.1380899353population_stddev(delays) परिणाम 2| कॉल | अंतरों के वर्गों के योग को किससे भाग दिया जाता है | आवश्यक मान |
|---|---|---|
variance, sample_variance |
n - 1 |
दो मान |
population_variance |
n |
एक मान |
stddev, stdev, sample_stddev |
n - 1 |
दो मान |
population_stddev |
n |
एक मान |
sample_variance और sample_stddev variance और stddev के लिए लंबे नाम हैं, इसलिए आप यह बता सकते हैं कि आपका क्या मतलब है। छोटे नाम हमेशा नमूना रूप रहे हैं और अभी भी हैं।
इकाइयों के साथ सूची
sum, average, median, mode, modes, percentile, quartile, min, max, stddev और population_stddev इकाइयाँ बनाए रखते हैं और संगत इकाइयों के बीच रूपांतरण करते हैं। सभी मान पहली इकाई में पढ़े जाते हैं और उत्तर भी उसी में आता है:
commutes = [24 min, 31 min, 27 min, 22 min]sum(commutes) परिणाम 1 hour 44 minaverage(commutes) परिणाम 26 minmedian(commutes) परिणाम 25.5 minpercentile(commutes, 25) परिणाम 23.5 minpopulation_stddev(commutes) परिणाम 3.3911649916 minsum([1 kg, 500 g]) परिणाम 1.5 kgmodes([1 kg, 500 g, 1 kg, 500 g]) परिणाम [0.5 kg, 1 kg]विचरण वाले फ़ंक्शन अपवाद हैं: वे अवलोकनों का वर्ग करते हैं और इस प्रक्रिया में इकाइयाँ बनाए नहीं रखते। इसलिए केवल बिना इकाई की संख्याएँ स्वीकार करते हैं।
sample_variance([1 kg, 2 kg]) परिणाम Unsupported: A variance squares its observations, so it takes plain numbers; use stddev for amounts with a unitsort भी केवल सादे संख्याओं पर काम करता है। असंगत इकाइयों वाले मानों पर एक आँकड़ा, जैसे कि sum([1 kg, 3 m]), चुपचाप मानों को छोड़ने के बजाय एक त्रुटि देता है।
इन सभी के पीछे सटीकता के नियम क्या इंजन गारंटी देता है में हैं।
ख़ाली सूचियां
| एक ख़ाली सूची पर कॉल करें | परिणाम |
|---|---|
sum([]) |
0 |
product([]) |
1 |
count([]), length([]) |
0 |
average([]), median([]), min([]), max([]) |
त्रुटि |
variance([]), stddev([]) |
त्रुटि |
एक खाली सूची अक्सर एक filter के परिणाम के रूप में दिखाई देती है जिसने कुछ भी मैच नहीं किया, इसलिए फ़िल्टर की गई सूची का average विफल हो सकता है भले ही मूल सूची में मान हों।
टैग
एक टैग एक # होता है जिसमें सीधे उस पर एक शब्द जुड़ा होता है, जैसे #food। उस लाइन को लेबल करने के लिए किसी भी पंक्ति में एक लिखें। टैग योग में कोई हिस्सा नहीं लेता, इसलिए लाइन अभी भी अपना उत्तर दिखाती है, और यह उस लाइन को हर दूसरी लाइन के साथ जोड़ता है जिसमें वही टैग होता है। total of #food फिर उन लाइनों को जोड़ता है:
£12.50 lunch #food परिणाम £12.50£8 coffee #food परिणाम £8.00flights = £420 #trip परिणाम £420.00total of #food परिणाम £20.50टैग का लाभ यह है कि पंक्तियाँ साथ-साथ होना ज़रूरी नहीं, जबकि उपकुल के लिए होता है। सप्ताह का खर्च, यात्रा और खरीदारी सूची एक ही ब्लॉक में रखकर नीचे उनके अलग-अलग कुल निकाल सकते हैं। टैग पर पॉइंटर रखकर उसका अब तक का कुल देखें।
प्रत्येक आँकड़ा एक टैग पर काम करता है। of वैकल्पिक है, टैग शब्द से पहले या बाद में आ सकता है, और उत्तर एक लेबल या अपना खुद का नाम लेता है, जैसा कि कोई अन्य पंक्ति करता है:
#food £12.50#food £8£420 #triptotal of #food परिणाम £20.50average of #food परिणाम £10.25count of #food परिणाम 2min of #food परिणाम £8.00max of #food परिणाम £12.50#food total परिणाम £20.50Food this week: sum of #food परिणाम £20.50eaten = avg #food परिणाम £10.25sum, total, average, avg, mean, count, min और max सभी इस तरह से पढ़ते हैं।
टैग से निकला आँकड़ा किसी रकम की जगह इस्तेमाल होता है, इसलिए उससे आगे गणना कर सकते हैं। जैसे संचयी योग से अग्रिम भुगतान घटाना, कुल को किसी अनुपात से बढ़ाना या दो टैग के कुलों की तुलना करना:
£20 shop #food परिणाम £20.00£30 meal out #food परिणाम £30.00total of #food - £10 परिणाम £40.002 * total of #food परिणाम £100.00Cooking kit: total of #food परिणाम £50.00एक पंक्ति जितनी चाहें उतने टैग ले जा सकती है, और प्रत्येक इसे गिनता है। एक वाक्यांश में दो टैग का नाम दें और आपको वे पंक्तियाँ मिलती हैं जो दोनों को ले जाती हैं:
£50 dinner #trip #food परिणाम £50.00£30 taxi #trip परिणाम £30.00£9 sandwich #food परिणाम £9.00total of #trip परिणाम £80.00total of #food परिणाम £59.00total of #trip #food परिणाम £50.00टैग के कुल में क्या शामिल होता है
एक टैग वाक्यांश बिल्कुल उसी पंक्तियों को देखता है जो एक साधारण total करता है, और वही नियम का पालन करता है:
- यह अपने स्वयं के खंड को कवर करता है, पिछले कुल पर वापस, एक
---विभाजक या एक#शीर्षक। - केवल एक ही प्रकार के मान जुड़ते हैं। प्रतिशत, दरें, साधारण गिनतियाँ और त्रुटि वाली पंक्तियाँ छूट जाती हैं। संकेत में उनका नाम आता है, जैसे “Leaves out line 2 (people = 2)”।
- प्रत्येक राशि को एक बार गिना जाता है, इसलिए एक टैग की गई क़ीमत जिसे बाद में टैग की गई पंक्ति गुणा करती है, दोनों के बजाय उस पंक्ति में गिना जाता है।
तो एक सप्ताह के #food को अगले से अलग रखने के लिए एक शीर्षक ही हैः
# Week 1£20 lunch #food परिणाम £20.00total of #food परिणाम £20.00# Week 2£30 lunch #food परिणाम £30.00total of #food परिणाम £30.00जोड़ने लायक कुछ न मिले तो पंक्ति खाली या शून्य दिखाने के बजाय यही बताती है। अक्सर इसका कारण टैग में टाइप की गलती या बीच का कोई भूला हुआ शीर्षक होता है:
£12.50 lunch #food परिणाम £12.50total of #drinks परिणाम Unsupported: no lines tagged #drinks abovering the plumber #jobstotal of #jobs परिणाम Unsupported: no amounts tagged #jobs aboveटैग नाम लिखना
टैग के नाम में अक्षर, अंक, _, - और / हो सकते हैं। इसलिए #q1-2026 और #trip/lisbon एक-एक नाम हैं। बड़े-छोटे अक्षरों का फर्क नहीं पड़ता:
£20 flight #trip/lisbon परिणाम £20.00£35 hotel #Trip/Lisbon परिणाम £35.00total of #trip/lisbon परिणाम £55.00शब्द से न जुड़ा # अपना पुराना अर्थ रखता है, इसलिए आपका पहले से लिखा टेक्स्ट नहीं बदलता:
| आप लिखते हैं | यह क्या है |
|---|---|
# Weekly shop |
एक टिप्पणी, क्योंकि हैश के बाद स्पेस है |
5 + 5 # comment |
वहीः हैश के बाद सब कुछ अनदेखा किया जाता है |
C#4 in Hz |
संगीत का शार्प चिह्न, क्योंकि हैश स्वर के नाम से जुड़ा है |
#1, Invoice #123 |
एक संख्या, एक टैग नहींः एक टैग नाम एक अंक से शुरू नहीं हो सकता है |
#ff0000, #fff |
एक रंग कोड |
varlig.app/docs#tags |
फ़्रैगमेंट वाला वेब पता |
एक टैग नाम को एक अक्षर से शुरू होना चाहिए, और हैश के बाद तीन, चार, छह या आठ हेक्स अंक एक रंग के रूप में पढ़े जाते हैं, इसलिए #fee एक रंग है जबकि #fees एक टैग है।
एक नोट में टैग और एक ब्लॉक में टैग
साइडबार में नोट व्यवस्थित करने वाले टैग टैग, लिंक और बैकलिंक में समझाए गए हैं। गणना ब्लॉक के अंदर वे उस रूप में काम नहीं करते। ब्लॉक में #food केवल उस पंक्ति के कुल का लेबल है और साइडबार में कभी नहीं दिखता। ब्लॉक के बाहर नोट में #food नोट को व्यवस्थित करता है और हिसाब को नहीं बदलता। दोनों उपयोग चाहिए हों तो टैग दोनों जगह लिखें। एक अंतर और है: नोट के टैग को दूसरे # से बंद करने पर उसमें स्पेस हो सकते हैं, जबकि गणना ब्लॉक का टैग पहली स्पेस पर ही समाप्त हो जाता है।
सूची संदर्भ
| कॉल | यह क्या करता है |
|---|---|
range(start,end) |
start से end तक के पूर्ण संख्याएँ, दोनों छोरों सहित |
range(start,end,step) |
step के आधार पर गिनें, जो ऋणात्मक या भिन्न हो सकता है लेकिन शून्य नहीं। |
length(list), count(list) |
मानों की संख्या |
sort(list) |
छोटे से बड़े क्रम में; केवल बिना इकाई वाली संख्याएँ |
reverse(list) |
विपरीत क्रम में समान मान; कोई भी मान |
unique(list) |
हर मान को केवल पहली बार आने पर रखें |
slice(list,start,end) |
इंडेक्स start से इंडेक्स end से ठीक पहले तक के मान |
map(expression,variable,list) |
हर मान के लिए व्यंजक की एक बार गणना करें |
filter(condition,variable,list) |
उन मानों को रखें जिनके लिए शर्त true है |
range(1, 5) परिणाम [1, 2, 3, 4, 5]range(0, 100, 25) परिणाम [0, 25, 50, 75, 100]range(10, 0, -2) परिणाम [10, 8, 6, 4, 2, 0]scores = [72, 85, 91, 64, 88]sort(scores) परिणाम [64, 72, 85, 88, 91]reverse(sort(scores)) परिणाम [91, 88, 85, 72, 64]slice(sort(scores), 0, 3) परिणाम [64, 72, 85]unique([4, 2, 4, 6, 2]) परिणाम [4, 2, 6]reverse(sort(…)) सबसे बड़े को पहले देता है, और slice(sort(…), 0, 3) तीन सबसे छोटे को चुनता है।
स्लाइस बाउंड्स को 0 <= start <= end <= length को संतुष्ट करना चाहिए। बराबर start और end एक ख़ाली सूची देते हैं। कोई scores[0:2] शॉर्टहैंड नहीं है; slice(scores, 0, 2) लिखें।
unique मानों की तुलना ठीक वैसे ही करता है जैसे वे संग्रहीत किए गए हैं, इसलिए 1 kg और 1000 g दो अलग-अलग मानों के रूप में गिने जाते हैं, और दसवें दशमलव स्थान पर भिन्न होने वाले दो परिणाम मर्ज नहीं किए जाते।
मैप और फ़िल्टर
map सूची के हर मान पर अभिव्यक्ति की गणना करता है। filter केवल शर्त पूरी करने वाले मान रखता है। दोनों में पहले अभिव्यक्ति, फिर हर मान के लिए स्थानीय नाम, और आखिर में सूची आती है:
scores = [72, 85, 91, 64, 88]map(s + 5, s, scores) परिणाम [77, 90, 96, 69, 93]filter(s >= 80, s, scores) परिणाम [85, 91, 88]count(filter(s >= 80, s, scores)) परिणाम 3average(filter(s >= 80, s, scores)) परिणाम 88filter(s >= 80, s, scores) को "scores में मान s जहां s >= 80" के रूप में पढ़ें। दोनों इकाइयों और धन के साथ काम करते हैंः
map(p * 1.2, p, [£10, £25, £40]) परिणाम [£12.00, £30.00, £48.00]spend = [£42.50, £18.20, £65.00, £23.30]filter(x > £30, x, spend) परिणाम [£42.50, £65.00]sum(filter(x > £30, x, spend)) परिणाम £107.50आपके द्वारा चुना गया नाम केवल कॉल के अंदर मौजूद है। यह नोट में कहीं और उसी नाम का मान नहीं बदलता हैः
x = 10map(x * 2, x, [1, 2, 3]) परिणाम [2, 4, 6]x परिणाम 10filter में शर्त एक तुलना या कोई अन्य सत्य/असत्य मान होनी चाहिए। एक साधारण संख्या को सत्य के रूप में नहीं माना जाता है, इसलिए filter(x, x, [0, 1, 2]) एक त्रुटि है। एक खाली सूची को मैप करना या फ़िल्टर करना एक खाली सूची देता है।
सूचियों के साथ अंकगणित
सूची के हर मान को एक संख्या से गुणा या भाग दे सकते हैं। समान लंबाई की दो सूचियों को जोड़ने या घटाने पर समान स्थिति के मानों पर कार्रवाई होती है:
[30, 36, 22] / 40 * 100 परिणाम [75, 90, 55]2 * [3, 1, 4] परिणाम [6, 2, 8]-[5, -3] परिणाम [-5, 3]mocks = [62, 70, 60]finals = [72, 78, 69]finals - mocks परिणाम [10, 8, 9]average(finals - mocks) परिणाम 9[1 kg, 2 kg] + [500 g, 500 g] परिणाम [1.5 kg, 2.5 kg][72, 85] == [72, 85] परिणाम trueपहली पंक्ति 40 में से मिले अंकों को प्रतिशत में बदलती है। finals - mocks हर छात्र के अंतिम अंक से उसी छात्र का अभ्यास-परीक्षा अंक घटाती है।
कुछ ऑपरेशन सूचियों पर समर्थित नहीं हैंः
- एक सूची में एक एकल संख्या जोड़ना, जैसा कि
scores + 5में है। इसके बजायmap(s + 5, s, scores)का उपयोग करें। - विभिन्न लंबाई की सूची जोड़ना। लंबाई मिलान करने के लिए मूल्यों को कभी नहीं दोहराया जाता है।
- दो साधारण सूचियों को
*से गुणा करना। समान स्थान के मानों के गुणनफलों का योग चाहिए तोdotइस्तेमाल करें:dot([2, 3, 1], [4, 5, 10])का उत्तर33है—जैसे 4 की दर से दो कॉफ़ी, 5 की दर से तीन चाय और 10 का एक केक। पंक्तियों की सूचियों के बीच*आव्यूह गुणन करता है; सदिश और आव्यूह देखें।
पंक्तियों की सूची
पंक्तियों की सूची छोटी तालिका की तरह काम करती है। average और sum हर कॉलम पर गणना करते हैं, जबकि map हर पंक्ति पर काम कर सकता है:
# Each row is one student: [mock, final]results = [[62, 72], [70, 78], [60, 69]]average(results) परिणाम [64, 73]sum(results) परिणाम [192, 219]map(average(r), r, results) परिणाम [67, 74, 64.5]median, min, max और stddev पंक्तियों की सूची स्वीकार नहीं करते हैं। पंक्तियों पर map का उपयोग करें, जैसा कि अंतिम पंक्ति में है, या एक कॉलम को अपनी सूची में खींचें।
इन सभी कार्यों के लिए सटीक नियम उन्नत गणित संदर्भ में हैं।
इसे एक साथ रखना
यह घड़ी से मिली एक सप्ताह की पैदल कदमों की गिनती है, दैनिक लक्ष्य के साथ:
# Steps, Monday to Sundaysteps = [8200, 10400, 6300, 12000, 9100, 7400, 9600]goal = 9000sum(steps) परिणाम 63,000average(steps) परिणाम 9,000median(steps) परिणाम 9,100Days on target: count(filter(s >= goal, s, steps)) परिणाम 4Spread: max(steps) - min(steps) परिणाम 5,700# Roughly 0.75 m per stepwalked = sum(steps) * 0.75 mwalked in km परिणाम 47.25 kmऔसत ठीक लक्ष्य के बराबर है, लेकिन केवल चार दिन लक्ष्य पूरा हुआ। सबसे अधिक और सबसे कम कदमों वाले दिन में 5,700 कदमों का अंतर है। goal बदलें या अगले सप्ताह की गिनतियाँ पेस्ट करें; हर पंक्ति अपने आप अपडेट हो जाएगी।