2. Lists / Arrays — فہرست
Difficulty: Intermediate — متوسط
Time: ~25 minutes
Creating Lists — فہرست بنانا
متغیر اعداد = [1, 2, 3, 4, 5];
متغیر نام = ["احمد", "فاطمہ", "علی"];
متغیر خالی_ف = [];
متغیر ملی = [1, "سلام", سچ, خالی]; // mixed types
Access elements by index (starts at 0):
لکھو(نام[0]); // احمد
لکھو(نام[-1]); // علی (last element)
لکھو(نام.لمبائی); // 3 (length property)
لکھو(لمبائی(نام)); // 3 (built-in function also works)
اردو: فہرست
[]میں، اشاریہ صفر سے شروع۔.لمبائیسے یالمبائی()فنکشن سے تعداد جانیں۔
Adding and Removing — شامل اور ہٹانا
متغیر ف = [1, 2, 3];
ف.شامل(4); // push — add to end
لکھو(ف); // [1, 2, 3, 4]
متغیر آخری = ف.نکالو(); // pop — remove from end
لکھو(آخری); // 4
لکھو(ف); // [1, 2, 3]
ف.پہلے_شامل(0); // unshift — add to beginning
لکھو(ف); // [0, 1, 2, 3]
متغیر پہلا = ف.پہلا_نکالو(); // shift — remove from beginning
لکھو(پہلا); // 0
لکھو(ف); // [1, 2, 3]
اردو:
.شامل()آخر میں،.نکالو()آخر سے،.پہلے_شامل()شروع میں،.پہلا_نکالو()شروع سے ہٹاتا ہے۔
Searching — تلاش
متغیر ف = [10, 20, 30, 40, 50];
لکھو(ف.مقام(30)); // 2 (index of 30 — indexOf)
لکھو(ف.مقام(99)); // -1 (not found)
لکھو(ف.شامل_ہے(40)); // True (includes)
لکھو(ف.شامل_ہے(99)); // False
Slicing — کاٹنا
متغیر ف = [10, 20, 30, 40, 50];
لکھو(ف.حصہ(1, 3)); // [20, 30] (index 1 and 2 — slice)
لکھو(ف.حصہ(2)); // [30, 40, 50] (from index 2 to end)
لکھو(ف.حصہ(-2)); // [40, 50] (last 2)
اردو:
.حصہ(شروع, آخر)نئی فہرست دیتا ہے — اصل فہرست نہیں بدلتی۔
Splice — کاٹ کر جوڑنا
.کاٹو() modifies the list in place — it can remove and/or insert:
// Remove 2 elements starting at index 1
متغیر ف = [1, 2, 3, 4, 5];
ف.کاٹو(1, 2);
لکھو(ف); // [1, 4, 5]
// Insert at index 2 (remove 0, insert 10 and 20)
متغیر ف2 = [1, 2, 3, 4, 5];
ف2.کاٹو(2, 0, 10, 20);
لکھو(ف2); // [1, 2, 10, 20, 3, 4, 5]
اردو:
.کاٹو(اشاریہ, گنتی, ...نئی_قدریں)—اشاریہسےگنتیعناصر ہٹائیں اور نئی قدریں ڈالیں۔
Joining Lists — فہرستیں جوڑنا
// concat — ملاؤ()
متغیر الف = [1, 2];
متغیر ب = [3, 4];
لکھو(الف.ملاؤ(ب)); // [1, 2, 3, 4]
// spread — same result
لکھو([...الف, ...ب]); // [1, 2, 3, 4]
Sorting — ترتیب
متغیر ف = [3, 1, 4, 1, 5, 9, 2, 6];
// ترتیب() built-in returns a sorted copy
لکھو(ترتیب(ف)); // [1, 1, 2, 3, 4, 5, 6, 9]
لکھو(ترتیب(ف, الٹا=سچ)); // [9, 6, 5, 4, 3, 2, 1, 1]
// Sort strings by length
متغیر الفاظ = ["کیلا", "سیب", "آم", "انار"];
لکھو(ترتیب(الفاظ, کلید=لمبائی)); // by length
اردو:
ترتیب()بلٹ-ان فنکشن ترتیب شدہ نئی فہرست دیتا ہے — اصل نہیں بدلتی۔
Reversing — الٹانا
متغیر ف = [1, 2, 3, 4, 5];
لکھو(ریورس(ف)); // [5, 4, 3, 2, 1]
لکھو(ف); // [1, 2, 3, 4, 5] — original unchanged
اردو:
ریورس()بلٹ-ان فنکشن نئی الٹی فہرست دیتا ہے۔
Flattening — چپٹا کرنا
Fill — بھرنا
متغیر ف = [0, 0, 0, 0, 0];
ف.بھرو(7);
لکھو(ف); // [7, 7, 7, 7, 7]
// Fill a range
متغیر ف2 = [1, 2, 3, 4, 5];
ف2.بھرو(0, 1, 3); // fill 0 from index 1 to 2
لکھو(ف2); // [1, 0, 0, 4, 5]
Joining to String — متن میں بدلنا
// For string lists — .جوڑو() method
متغیر نام = ["احمد", "فاطمہ", "علی"];
لکھو(نام.جوڑو(", ")); // احمد, فاطمہ, علی
لکھو(نام.جوڑو(" — ")); // احمد — فاطمہ — علی
// For any list — ربط() built-in function
لکھو(ربط(", ", [1, 2, 3])); // 1, 2, 3
اردو:
.جوڑو()صرف متن فہرست کے لیے۔ ملی جلی فہرست کے لیےربط(جوڑنے_والا, فہرست)بلٹ-ان فنکشن استعمال کریں۔
Copying — نقل بنانا
متغیر اصل = [1, 2, 3];
متغیر نقل = [...اصل]; // spread creates a shallow copy
نقل.شامل(4);
لکھو(اصل); // [1, 2, 3] — unchanged
لکھو(نقل); // [1, 2, 3, 4]
Key Points — اہم نکات
| Method | Meaning |
|---|---|
.شامل(q) |
push — add to end |
.نکالو() |
pop — remove from end |
.پہلے_شامل(q) |
unshift — add to beginning |
.پہلا_نکالو() |
shift — remove from beginning |
.مقام(q) |
indexOf — find index |
.شامل_ہے(q) |
includes — presence check |
.حصہ(a, b) |
slice — copy portion |
.کاٹو(a, b, ...) |
splice — remove/insert in place |
.ملاؤ(list) |
concat — combine lists |
.پھیلاؤ() |
flat — flatten nested |
.بھرو(v) |
fill — set all elements |
.لمبائی |
length property |
ترتیب(ف) |
sorted copy |
ریورس(ف) |
reversed copy |
اردو: تمام فہرست طریقے اردو نام سے —
.شامل()جوڑیں،.نکالو()ہٹائیں،.تلاش()ڈھونڈیں۔