Daftar dan statistik
Daftar menyimpan beberapa nilai dalam satu nama, misalnya jumlah langkah selama seminggu, nilai ujian, atau nilai tanda terima selama sebulan. Anda dapat menjumlahkan, merata-ratakan, mengukur sebaran, dan memilih nilai-nilai yang diperlukan.
Halaman ini membahas penulisan dan pengindeksan daftar, statistik ringkasan, penjumlahan baris sebelumnya, pemberian tag untuk menjumlahkan baris di berbagai posisi, pengurutan dan pengambilan bagian daftar, transformasi dengan map dan filter, serta aritmetika pada seluruh daftar. Gunakan saat Anda memiliki sekumpulan angka yang perlu dirangkum. Daftar yang berisi baris juga dapat menjadi matriks, yang dibahas di halaman tersendiri.
Menulis daftar
Masukkan nilai dalam tanda kurung siku, dipisahkan dengan koma:
scores = [72, 85, 91, 64, 88] menghasilkan [72, 85, 91, 64, 88]scores[0] menghasilkan 72scores[4] menghasilkan 88length(scores) menghasilkan 5Posisi nilai dalam daftar disebut indeks, ditulis dalam tanda kurung siku setelah daftar. Indeks dimulai dari nol, sehingga scores[0] adalah nilai ujian pertama dan scores[4] adalah nilai kelima. Elemen terakhir selalu berada pada length(scores) - 1. Indeks negatif, pecahan, atau terlalu besar menghasilkan kesalahan; indeks tidak berputar kembali dari ujung daftar.
Elemen dapat berupa perhitungan, kuantitas dengan satuan, atau daftar lainnya:
[2 * 45, 60 + 15] menghasilkan [90, 75][1.5 kg, 750 g] menghasilkan [1.5 kg, 750 g][[1, 2], [3, 4]][1][0] menghasilkan 3Dengan daftar bersarang, indeks pertama memilih daftar dalam dan yang kedua memilih nilai darinya: [1] memilih [3, 4], lalu [0] memilih 3.
Pemisah ribuan dapat digunakan di dalam daftar, sehingga angka dapat ditempelkan sesuai penulisannya. Tambahkan spasi setelah koma yang memisahkan nilai. Koma yang langsung diikuti tiga digit tetap menjadi bagian angka:
salaries = [£32,000, £41,500, £38,250] menghasilkan [£32,000.00, £41,500.00, £38,250.00]average(salaries) menghasilkan £37,250.00Beberapa hal yang harus diperhatikan:
- Tanpa spasi, setiap koma terpisah, jadi
[8200,10400]memiliki dua nilai. Daftar seperti[100,200,300]bisa berupa satu angka atau tiga, jadi Varlig menunjukkan kesalahan yang menjelaskan keduanya. - Hasil menampilkan pemisah ribuan dan spasi setelah koma pemisah nilai, sehingga
[8,200, 10,400]merupakan daftar berisi dua nilai. - Sebuah daftar memiliki paling banyak 1.024 nilai.
Statistik ringkasan
scores = [72, 85, 91, 64, 88]sum(scores) menghasilkan 400average(scores) menghasilkan 80median(scores) menghasilkan 85min(scores) menghasilkan 64max(scores) menghasilkan 91count(scores) menghasilkan 5mean dan avg adalah nama lain untuk average, total untuk sum, stdev untuk stddev dan count untuk length, jadi kebiasaan spreadsheet terbawa. product melipatgandakan nilai bersama-sama. Untuk nilai yang paling umum, persentil atau kuartil, lihat di bawah.
Dengan daftar bernama, Anda juga dapat menulis statistik dalam kata-kata:
scores = [72, 85, 91, 64, 88]average of scores menghasilkan 80total of scores menghasilkan 400sum of, mean of, median of, min of, max of, dan count of bekerja dengan cara yang sama. Setelah of, tulis nama variabel atau nilai-nilai yang dipisahkan koma, dengan atau tanpa tanda kurung biasa. Untuk nilai dalam tanda kurung siku, gunakan bentuk fungsi, misalnya average([72, 85, 91]).
Sebagian besar statistik, termasuk sum, product, average, median, min, max, count dan stddev, juga menerima nilai terpisah alih-alih daftar:
max(72, 85, 91) menghasilkan 91sum(1, 2, 3, 4) menghasilkan 10average of 70, 85, 91 menghasilkan 82mean of (1,2,3) menghasilkan 2average(1,200, 1,800) menghasilkan 1,500Menjumlahkan baris sebelumnya
Sebuah baris yang mengatakan hanya sum, total, subtotal, grand total, average, max atau min mengerjakan angka itu untuk jawaban di atasnya. Ini mencakup bagiannya sendiri, yang dimulai dari total sebelumnya, pembagi --- atau judul #, sehingga setiap bagian dari catatan mendapatkan angkanya sendiri saat Anda mengetik. Ini berfungsi seperti opsi Subtotal di menu konteks baris:
# Groceriesbread = £1.20milk = £1.45eggs = £2.30total menghasilkan £4.95# Householdbin bags = £3.50washing up liquid = £1.80total menghasilkan £5.30Kata tersebut dapat membawa label, mengambil nama sendiri, mengubah jawaban atau memiliki komentar setelahnya, sehingga barisnya dibaca seperti sisa catatan Anda:
tickets = £64train = £41.20Estimated total: total menghasilkan £105.20est = total menyimpan angka di bawah nama, dan total // still to book menambahkan catatan di sampingnya. total in kg dikonversi sebelum ditampilkan, yang berguna ketika bagian mencampur gram dan kilogram. Kata statistik di samping operator adalah angka yang akan ditampilkan oleh garisnya sendiri, jadi £5 + subtotal menambahkan lima ke total yang berjalan.
# Parcels12 kg menghasilkan 12 kg4 kg menghasilkan 4 kg850 g menghasilkan 850 gtotal in kg menghasilkan 16.85 kgmax menghasilkan 12 kgJika Anda sudah memberi suatu nilai nama sum atau total, baris menampilkan nilai tersebut. Jika tidak ada nilai di atasnya yang dapat dihitung, baris menampilkan Unsupported: no amounts above to add up, bukan kosong atau nol. Biasanya ini terjadi karena ada judul bagian yang terlupakan di antara nilai dan total.
Setiap jumlah dihitung satu kali. Ketika baris selanjutnya di bagian menghasilkan sesuatu dari jumlah yang disebutkan, total menghitung baris itu daripada keduanya, jadi daftar belanja harga satuan dan kuantitas menambah apa yang sebenarnya akan Anda bayar:
shirt = £18.50shorts = £99 * shirt menghasilkan £166.5010 * shorts menghasilkan £90.00fee = £40vat = fee * 20% menghasilkan £8.00total menghasilkan £304.50shirt dan shorts dihitung di dalam dua baris yang menggunakannya, sementara fee tetap dalam total karena vat hanya mengambil bagian darinya.
Aturan ini mengikuti seluruh rantai nama variabel. Jika catatan membagi suatu nilai menjadi beberapa bagian lalu menjumlahkan bagian-bagian itu kembali, baris penjumlahannya dihitung, dan nilai asal yang dibagi juga tetap dihitung:
pot = £9001st = 50% of pot menghasilkan £450.002nd = 30% of pot menghasilkan £270.003rd = 20% of pot menghasilkan £180.001st + 2nd + 3rd menghasilkan £900.00total menghasilkan £900.00Hanya nilai sejenis yang dijumlahkan. Jika bagian di atas memuat uang atau besaran bersatuan, persentase, nilai per satuan, dan bilangan hitungan biasa tidak disertakan; baris yang menghasilkan kesalahan juga dikecualikan. Angka biasa yang ditempel sebagai kolom ikut dijumlahkan jika ditulis dengan ketelitian hingga dua tempat desimal, seperti nominal uang. Angka dengan lebih banyak desimal, misalnya kurs atau faktor pengali, tidak disertakan. Petunjuk total menyebutkan semua baris yang dikecualikan, misalnya "Tidak menyertakan baris 3 (people = 2)" atau "Tidak menyertakan baris 2 (kesalahan)", agar cakupan total mudah diperiksa.
Daftar dua atau lebih jumlah yang ditulis tanpa nama, tepat di atas total dan di bawah garis yang dibuat dari nama, ditambahkan sendiri. Dengan begitu, anggaran yang dikerjakan di bagian atas catatan tidak dihitung lagi dalam daftar di bawahnya:
budget = £18,000remaining = budget - £6,388.25 menghasilkan £11,611.75- skip hire £250 menghasilkan £250.00- deep clean £120 menghasilkan £120.00subtotal menghasilkan £370.00Untuk total baris yang tidak bersebelahan, beri label dengan tag sebagai gantinya.
Nilai yang paling sering muncul
mode menghasilkan nilai yang paling sering muncul, sedangkan modes menghasilkan daftar semua nilai yang sama-sama memiliki frekuensi tertinggi:
marks = [3, 4, 4, 5, 5, 5, 6]mode(marks) menghasilkan 5modes([1, 1, 2, 2, 3]) menghasilkan [1, 2]mode hanya memberikan hasil jika ada satu nilai dengan frekuensi tertinggi. Jika tidak ada nilai berulang atau beberapa nilai memiliki frekuensi tertinggi yang sama, fungsi menjelaskannya alih-alih memilih salah satu:
mode([1, 2, 3]) menghasilkan Unsupported: No value repeats, so this list has no mode; use median or average insteadPersentil dan kuartil
percentile(list, rank) menerima persentil dari 0 hingga 100 dan menghasilkan nilai pada posisi tersebut dengan interpolasi di antara dua pengamatan terdekat. quartile(list, k) melakukan hal yang sama pada pembagian perempat, dengan k dari 0 hingga 4, sehingga quartile(list, 1) sama dengan percentile(list, 25):
scores = [72, 85, 91, 64, 88]percentile(scores, 50) menghasilkan 85percentile(scores, 25) menghasilkan 72quartile(scores, 3) menghasilkan 88quartile(scores, 4) menghasilkan 91percentile([1, 2, 3, 4], 25) menghasilkan 1.75quartile([1, 2, 3, 4], 3) menghasilkan 3.25Persentil ke-50 adalah median, dan ke-0 dan ke-100 — quartile(list, 0) dan quartile(list, 4) — adalah nilai terkecil dan terbesar, sama dengan min dan max. Peringkat di luar jangkauannya adalah kesalahan daripada nilai terdekat yang sesuai:
percentile([1, 2, 3, 4], 101) menghasilkan Unsupported: A percentile is between 0 and 100quartile([1, 2, 3, 4], 5) menghasilkan Unsupported: A quartile is 0, 1, 2, 3 or 4Sebaran: varians dan simpangan baku
scores = [72, 85, 91, 64, 88]variance(scores) menghasilkan 132.5stddev(scores) to 1 dp menghasilkan 11.5Keduanya merupakan statistik sampel: pembaginya adalah jumlah nilai dikurangi satu (n - 1), yang lazim digunakan jika data Anda merupakan sampel dari populasi lebih besar. Diperlukan setidaknya dua nilai. Tambahkan to 1 dp setelah statistik apa pun untuk membulatkannya.
Ketika daftar Anda adalah seluruh populasi daripada sampel, gunakan bentuk populasi, yang dibagi dengan n dan hanya membutuhkan satu nilai:
# Train delays in minutesdelays = [2, 4, 4, 4, 5, 5, 7, 9]sample_variance(delays) menghasilkan 4.5714285714population_variance(delays) menghasilkan 4sample_stddev(delays) menghasilkan 2.1380899353population_stddev(delays) menghasilkan 2| Pemanggilan | Pembagi untuk jumlah kuadrat selisih | Memerlukan |
|---|---|---|
variance, sample_variance |
n - 1 |
Dua nilai |
population_variance |
n |
Satu nilai |
stddev, stdev, sample_stddev |
n - 1 |
Dua nilai |
population_stddev |
n |
Satu nilai |
sample_variance dan sample_stddev adalah nama panjang untuk variance dan stddev, agar jenis statistik dapat disebutkan secara eksplisit. Nama pendek sejak awal selalu menggunakan rumus sampel dan tetap demikian.
Daftar dengan satuan
sum, average, median, mode, modes, percentile, quartile, min, max, stddev dan population_stddev menyimpan unit, dan mengkonversi antara yang kompatibel. Nilai-nilainya dibaca dalam unit yang pertama, dan jawabannya kembali di dalamnya:
commutes = [24 min, 31 min, 27 min, 22 min]sum(commutes) menghasilkan 1 hour 44 minaverage(commutes) menghasilkan 26 minmedian(commutes) menghasilkan 25.5 minpercentile(commutes, 25) menghasilkan 23.5 minpopulation_stddev(commutes) menghasilkan 3.3911649916 minsum([1 kg, 500 g]) menghasilkan 1.5 kgmodes([1 kg, 500 g, 1 kg, 500 g]) menghasilkan [0.5 kg, 1 kg]Varians merupakan pengecualian: perhitungannya menguadratkan nilai pengamatan dan tidak mempertahankan satuan, sehingga hanya menerima angka tanpa satuan.
sample_variance([1 kg, 2 kg]) menghasilkan Unsupported: A variance squares its observations, so it takes plain numbers; use stddev for amounts with a unitsort juga hanya berfungsi pada angka biasa. Statistik tentang nilai dengan unit yang tidak kompatibel, seperti sum([1 kg, 3 m]) memberikan kesalahan daripada melewatkan nilai secara diam-diam.
Aturan ketepatan di balik semua ini ada di Apa yang dijamin oleh mesin.
Daftar kosong
| Pemanggilan pada daftar kosong | Hasil |
|---|---|
sum([]) |
0 |
product([]) |
1 |
count([]), length([]) |
0 |
average([]), median([]), min([]), max([]) |
Kesalahan |
variance([]), stddev([]) |
Kesalahan |
Daftar kosong sering dihasilkan oleh filter yang tidak menemukan nilai sesuai kondisi. Karena itu, average pada daftar hasil penyaringan dapat gagal meskipun daftar asal berisi nilai.
Tag
Tag adalah # dengan kata yang digabungkan langsung dengannya, seperti #food. Tulis satu di mana saja pada garis untuk memberi label pada garis itu. Tag tidak mengambil bagian dalam jumlah, jadi baris masih menunjukkan jawabannya sendiri, dan mengelompokkan baris itu dengan setiap baris lain yang membawa tag yang sama. total of #food kemudian menambahkan baris-baris itu:
£12.50 lunch #food menghasilkan £12.50£8 coffee #food menghasilkan £8.00flights = £420 #trip menghasilkan £420.00total of #food menghasilkan £20.50Inilah kelebihan tag dibanding subtotal: baris-barisnya tidak harus berdekatan. Pengeluaran mingguan, perjalanan, dan daftar belanja dapat berada dalam satu blok, masing-masing dengan total sendiri di bawahnya. Arahkan penunjuk ke tag untuk melihat totalnya sejauh ini.
Setiap statistik bekerja pada tag. of adalah opsional, tag dapat muncul sebelum atau sesudah kata, dan jawabannya mengambil label atau namanya sendiri, seperti yang dilakukan baris lainnya:
#food £12.50#food £8£420 #triptotal of #food menghasilkan £20.50average of #food menghasilkan £10.25count of #food menghasilkan 2min of #food menghasilkan £8.00max of #food menghasilkan £12.50#food total menghasilkan £20.50Food this week: sum of #food menghasilkan £20.50eaten = avg #food menghasilkan £10.25sum, total, average, avg, mean, count, min dan max semuanya dibaca dengan cara ini.
Hasil statistik tag dapat digunakan seperti nilai biasa, sehingga perhitungan dapat dilanjutkan dari hasil tersebut. Misalnya, Anda dapat mengurangkan uang muka dari total berjalan, mengalikan total dengan suatu faktor, atau membandingkan dua tag:
£20 shop #food menghasilkan £20.00£30 meal out #food menghasilkan £30.00total of #food - £10 menghasilkan £40.002 * total of #food menghasilkan £100.00Cooking kit: total of #food menghasilkan £50.00Satu baris dapat membawa tag sebanyak yang Anda suka, dan masing-masing menghitungnya. Sebutkan dua tag dalam satu frasa dan Anda mendapatkan baris yang membawa keduanya:
£50 dinner #trip #food menghasilkan £50.00£30 taxi #trip menghasilkan £30.00£9 sandwich #food menghasilkan £9.00total of #trip menghasilkan £80.00total of #food menghasilkan £59.00total of #trip #food menghasilkan £50.00Cakupan total tag
Frasa tag melihat pada baris yang sama persis dengan total biasa, dan mengikuti aturan yang sama:
- Ini mencakup bagiannya sendiri, kembali ke total sebelumnya, pembagi
---atau judul#. - Hanya nilai sejenis yang dijumlahkan. Persentase, nilai per satuan, bilangan hitungan biasa, dan baris dengan kesalahan tidak disertakan. Petunjuk menyebutkannya, misalnya "Tidak menyertakan baris 2 (people = 2)".
- Setiap jumlah dihitung sekali, jadi harga yang ditandai yang dikalikan oleh baris yang ditandai selanjutnya dihitung di baris itu daripada di keduanya.
Jadi judul adalah semua yang diperlukan untuk memisahkan #food satu minggu dari yang berikutnya:
# Week 1£20 lunch #food menghasilkan £20.00total of #food menghasilkan £20.00# Week 2£30 lunch #food menghasilkan £30.00total of #food menghasilkan £30.00Ketika tidak ada yang perlu ditambahkan, baris tersebut mengatakan demikian daripada menunjukkan kosong atau nol, yang biasanya berarti kesalahan ketik di tag atau judul yang Anda lupakan ada di sana:
£12.50 lunch #food menghasilkan £12.50total of #drinks menghasilkan Unsupported: no lines tagged #drinks abovering the plumber #jobstotal of #jobs menghasilkan Unsupported: no amounts tagged #jobs aboveMenulis nama tag
Nama tag boleh memuat huruf, angka, _, -, dan /, sehingga #q1-2026 dan #trip/lisbon masing-masing merupakan satu nama. Huruf besar dan kecil dianggap sama:
£20 flight #trip/lisbon menghasilkan £20.00£35 hotel #Trip/Lisbon menghasilkan £35.00total of #trip/lisbon menghasilkan £55.00Sebuah # yang tidak bergabung dengan sebuah kata mempertahankan makna lamanya, jadi tidak ada yang sudah Anda tulis yang berubah:
| Yang Anda tulis | Apa itu |
|---|---|
# Weekly shop |
Sebuah komentar, karena spasi setelah hash |
5 + 5 # comment |
Sama: semuanya setelah hash diabaikan |
C#4 in Hz |
Tanda kres dalam notasi musik, karena tanda pagar menempel pada nama nada |
#1, Invoice #123 |
Angka, bukan tag: nama tag tidak dapat dimulai dengan digit |
#ff0000, #fff |
Sebuah kode warna |
varlig.app/docs#tags |
Sebuah alamat web dengan sebuah fragmen |
Nama tag harus dimulai dengan huruf, dan tiga, empat, enam atau delapan digit hex setelah hash dibaca sebagai warna, jadi #fee adalah warna sementara #fees adalah tag.
Tag dalam catatan dan tag dalam blok
Tag untuk mengatur catatan di bilah sisi dijelaskan dalam Tag, tautan, dan tautan balik. Tag tersebut tidak berlaku di dalam blok perhitungan. #food di dalam blok memberi label pada baris untuk penghitungan total dan tidak pernah muncul di bilah sisi. Sebaliknya, #food dalam teks di luar blok mengelompokkan catatan tanpa memengaruhi perhitungan. Tulis tag di kedua tempat jika membutuhkan kedua fungsi tersebut. Ada satu perbedaan penulisan: tag catatan dapat memuat spasi jika diakhiri dengan # kedua, sedangkan tag dalam blok perhitungan selalu berakhir pada spasi pertama.
Referensi fungsi daftar
| Pemanggilan | Apa yang dilakukannya |
|---|---|
range(start,end) |
Bilangan bulat dari start hingga end, termasuk kedua batas |
range(start,end,step) |
Hitung dengan step, yang bisa negatif atau pecahan tetapi bukan nol |
length(list), count(list) |
Jumlah nilai |
sort(list) |
Terkecil hingga terbesar; hanya angka biasa |
reverse(list) |
Nilai yang sama dalam urutan terbalik; nilai apa pun |
unique(list) |
Simpan kejadian pertama dari setiap nilai |
slice(list,start,end) |
Nilai dari indeks start hingga, tetapi tidak termasuk, indeks end |
map(expression,variable,list) |
Kerjakan ekspresi sekali untuk setiap nilai |
filter(condition,variable,list) |
Pertahankan nilai-nilai yang kondisinya true |
range(1, 5) menghasilkan [1, 2, 3, 4, 5]range(0, 100, 25) menghasilkan [0, 25, 50, 75, 100]range(10, 0, -2) menghasilkan [10, 8, 6, 4, 2, 0]scores = [72, 85, 91, 64, 88]sort(scores) menghasilkan [64, 72, 85, 88, 91]reverse(sort(scores)) menghasilkan [91, 88, 85, 72, 64]slice(sort(scores), 0, 3) menghasilkan [64, 72, 85]unique([4, 2, 4, 6, 2]) menghasilkan [4, 2, 6]reverse(sort(…)) memberikan yang terbesar terlebih dahulu, dan slice(sort(…), 0, 3) memilih tiga yang terendah.
Batas irisan harus memenuhi 0 <= start <= end <= length. start dan end yang sama memberikan daftar kosong. Tidak ada scores[0:2] singkatan; tulis slice(scores, 0, 2).
unique membandingkan nilai persis seperti yang disimpan, jadi 1 kg dan 1000 g dihitung sebagai dua nilai yang berbeda, dan dua hasil yang berbeda di tempat desimal kesepuluh tidak digabungkan.
Map dan filter
map mengerjakan ekspresi untuk setiap nilai dalam daftar. filter menyimpan nilai yang lulus tes. Di keduanya, ekspresi datang lebih dulu, lalu nama untuk mewakili setiap nilai, lalu daftar:
scores = [72, 85, 91, 64, 88]map(s + 5, s, scores) menghasilkan [77, 90, 96, 69, 93]filter(s >= 80, s, scores) menghasilkan [85, 91, 88]count(filter(s >= 80, s, scores)) menghasilkan 3average(filter(s >= 80, s, scores)) menghasilkan 88Baca filter(s >= 80, s, scores) sebagai "nilai s dalam scores di mana s >= 80 ". Keduanya bekerja dengan unit dan uang:
map(p * 1.2, p, [£10, £25, £40]) menghasilkan [£12.00, £30.00, £48.00]spend = [£42.50, £18.20, £65.00, £23.30]filter(x > £30, x, spend) menghasilkan [£42.50, £65.00]sum(filter(x > £30, x, spend)) menghasilkan £107.50Nama yang Anda pilih hanya ada di dalam panggilan. Itu tidak mengubah nilai dengan nama yang sama di tempat lain dalam catatan:
x = 10map(x * 2, x, [1, 2, 3]) menghasilkan [2, 4, 6]x menghasilkan 10Kondisi dalam filter harus berupa perbandingan atau nilai benar/salah lainnya. Angka biasa tidak diperlakukan sebagai benar, jadi filter(x, x, [0, 1, 2]) adalah sebuah kesalahan. Memetakan atau memfilter daftar kosong memberikan daftar kosong.
Aritmetika pada daftar
Anda dapat mengalikan atau membagi semua nilai dengan satu angka, serta menjumlahkan atau mengurangkan dua daftar yang sama panjang secara elemen demi elemen:
[30, 36, 22] / 40 * 100 menghasilkan [75, 90, 55]2 * [3, 1, 4] menghasilkan [6, 2, 8]-[5, -3] menghasilkan [-5, 3]mocks = [62, 70, 60]finals = [72, 78, 69]finals - mocks menghasilkan [10, 8, 9]average(finals - mocks) menghasilkan 9[1 kg, 2 kg] + [500 g, 500 g] menghasilkan [1.5 kg, 2.5 kg][72, 85] == [72, 85] menghasilkan trueBaris pertama mengubah nilai ujian dengan nilai maksimum 40 menjadi persentase. Baris finals - mocks memasangkan nilai ujian latihan dan ujian akhir setiap siswa.
Beberapa operasi tidak didukung pada daftar:
- Menambahkan satu nomor ke daftar, seperti pada
scores + 5Gunakanmap(s + 5, s, scores)sebagai gantinya. - Menambahkan daftar dengan panjang yang berbeda. Nilai tidak pernah diulang untuk membuat panjangnya cocok.
- Mengalikan dua daftar satu dimensi dengan
*tidak didukung. Untuk menjumlahkan hasil perkalian elemen berpasangan, gunakandot:dot([2, 3, 1], [4, 5, 10])menghasilkan33, misalnya dua kopi seharga 4, tiga teh seharga 5, dan satu kue seharga 10. Untuk daftar berisi baris,*berarti perkalian matriks, yang dibahas dalam Vektor dan matriks.
Daftar baris
Daftar yang berisi baris berfungsi seperti tabel kecil. average dan sum menghitung setiap kolom dari atas ke bawah, sedangkan map dapat menghitung tiap baris:
# Each row is one student: [mock, final]results = [[62, 72], [70, 78], [60, 69]]average(results) menghasilkan [64, 73]sum(results) menghasilkan [192, 219]map(average(r), r, results) menghasilkan [67, 74, 64.5]median, min, max dan stddev tidak menerima daftar baris. Gunakan map di atas baris, seperti di baris terakhir, atau tarik kolom ke dalam daftarnya sendiri.
Aturan yang tepat untuk semua operasi ini ada di referensi matematika tingkat lanjut.
Menggabungkan semuanya
Berikut adalah hitungan langkah seminggu dari jam tangan, dengan tujuan harian:
# Steps, Monday to Sundaysteps = [8200, 10400, 6300, 12000, 9100, 7400, 9600]goal = 9000sum(steps) menghasilkan 63,000average(steps) menghasilkan 9,000median(steps) menghasilkan 9,100Days on target: count(filter(s >= goal, s, steps)) menghasilkan 4Spread: max(steps) - min(steps) menghasilkan 5,700# Roughly 0.75 m per stepwalked = sum(steps) * 0.75 mwalked in km menghasilkan 47.25 kmRata-rata tepat mencapai target, tetapi hanya empat hari yang benar-benar mencapainya. Selisih hari dengan langkah terbanyak dan tersedikit adalah 5.700 langkah. Ubah goal atau tempelkan data minggu berikutnya, lalu semua baris diperbarui.