مسائل الفهرسة والاستخراج

1. قائمة: استخراج عنصر بفهرس موجب

لديك القائمة التالية. استخدم فهرسة موجبة فقط ([0]، [1]، …) لاستخراج العنصر المطلوب.

scores = [12, 19, 7, 22, 15]

المطلوب: اكتب تعبير فهرسة واحدًا يعيد 22.

# CODE HERE

2. قائمة: استخراج عنصر بفهرس سالب

لديك القائمة نفسها. استخدم فهرسة سالبة فقط لاستخراج:

scores = [12, 19, 7, 22, 15]

المطلوب: تعبيران: أحدهما يعيد 15 والآخر يعيد 22.

# CODE HERE

3. قائمة: استخراج تسلسل باستخدام الشرائح start:stop

استخدم الشريحة (بدون خطوة) لاستخراج جزء متصل من القائمة:

letters = ['a', 'b', 'c', 'd', 'e', 'f']

المطلوب: شريحة واحدة تعيد ['c', 'd', 'e'].

# CODE HERE

4. قائمة: شريحة بحدود سالبة لاستخراج جزء محدّد

استخدم شريحة يكون فيها start أو stop (أو كلاهما) سالبًا لاستخراج آخر عنصرين:

letters = ['a', 'b', 'c', 'd', 'e', 'f']

المطلوب: تعبير شريحة واحد يعيد ['e', 'f'] دون استخدام أرقام موجبة داخل [ ].

# CODE HERE

5. قائمة: استبدال قيمة عند فهرس معيّن

غيّر القائمة في مكانها بحيث تصبح القيمة عند الفهرس 2 هي 99:

values = [10, 20, 30, 40]

المطلوب: سطر إسناد واحد يستخدم الفهرسة.

# CODE HERE

6. قائمة: إيجاد الفهرس بالقيمة ثم الاستبدال

ابحث عن أول موضع للقيمة 20 ثم استبدلها بـ 200:

values = [10, 20, 30, 20, 40]

المطلوب: استخدم دالة تبحث بالقيمة (مثل .index(...)) ثم الإسناد بالفهرس.

# CODE HERE

7. قائمة: كل عنصر ثان باستخدام start:stop:step

من القائمة التالية، استخرج كل عنصر ثان بدءًا من الأول، ثم كل عنصر ثان بدءًا من الثاني:

nums = [0, 1, 2, 3, 4, 5, 6, 7]

المطلوب: شريحتان بصيغة [start:stop:step] (يمكن إهمال start/stop عند الحاجة).

# CODE HERE

8. قائمة متداخلة: استخراج عنصر داخلي

grid = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]

المطلوب: تعبير فهرسة متداخلة واحد يعيد العدد 6.

# CODE HERE

9. قاموس: استخراج قيمة بمفتاح

person = {'name': 'Sara', 'age': 31, 'city': 'Riyadh'}

المطلوب: تعبير يعيد 'Riyadh' (بأقواس مربعة أو .get).

# CODE HERE

10. قاموس متداخل: استخراج قيمة من مستوى داخلي

config = {
    'app': 'demo',
    'db': {'host': 'localhost', 'port': 5432},
    'debug': True,
}

المطلوب: تعبير يعيد 5432.

# CODE HERE

11. قائمة من قواميس وقوائم داخلية: أعمق قيمة في البنية

البنية التالية: قائمة من قواميس؛ كل قاموس يحتوي مفتاحًا قيمته قائمة. استخرج قيمة من أعمق قائمة كما يُطلب.

teams = [
    {
        'name': 'Alpha',
        'scores': [10, 12, 9],
    },
    {
        'name': 'Beta',
        'scores': [14, 11, 16, 8],
    },
]

المطلوب: تعبير فهرسة/مفاتيح واحد متسلسل (قائمة → قاموس → مفتاح scores → فهرس داخل القائمة) يعيد 8.

# CODE HERE

13. قاموس داخل قاموس

إذا كان لديك قاموس متداخل كالتالي:

user_preferences = {
    'theme': 'dark',
    'language': 'Arabic',
    'notifications': {
        'email': True,
        'sms': False,
        'push': True
    },
    'last_updated': '2021-09-01',
    'emails': ['example1@domain.com', 'example2@domain.com']
}

المطلوب أن تسحب من تفضيلات المستخدم المتغيرات التالية:

  • theme
  • sms
  • آخر عنصر في: emails
# CODE HERE

14. قائمة قواميس

إليك هذه القائمة من القواميس:

data = [
    {
        'name': 'Ahmad Hamada',
        'experiences': [
            {
                'company': 'Geo Space',
                'start': '2038-01-01',
                'end': '2039-01-01',
                'role': 'Junior Software Engineer',
            },
            {
                'company': 'Space Roots',
                'start': '2039-01-01',
                'end': '2041-01-01',
                'role': 'Senior Software Engineer',
            },
        ],
    },
    {
        'name': 'Belal Banana',
        'experiences': [
            {
                'company': 'Banana Tech',
                'start': '2041-01-01',
                'end': '2042-01-01',
                'role': 'Smoothie Operator',
            },
            {
                'company': 'BugSquash Labs',
                'start': '2042-02-01',
                'end': '2043-08-01',
                'role': 'Code Pest Control Specialist',
            },
            {
                'company': 'Caffeinated Circuits Inc.',
                'start': '2043-09-01',
                'end': '2045-05-01',
                'role': 'Espresso-Driven Engineer',
            }
        ]
    },
]

والمطلوب هو التالي:

  • استخرج اسم المرشح الثاني
  • استخرج اسم الشركة الثانية التي عمل فيها المشرح الأول
  • للمرشح الأول، استخرج وقت البداية لأول شركة، ووقت النهاية لآخر شركة
  • استخرج قاموس الخبرة التي فيها القيمة: role: "Espresso-Driven Engineer"
# CODE HERE