Pythonда элементлар ва уларнинг индекcларини олиш

Итерируемый обектдан нафақат элементларни, балки уларнинг индекcларини хам чиқариб олиш мумкин. Бунинг учун функцияси қўлланилади. Унинг параметрида керакли итерируемый обектни кўрсатамиз.

Мисол

Фарз қилайлик, бизда рўйхат мавжуд:

pythonlst = ['a', 'b', 'c']

Келинг, ундан элементларни уларнинг индекcлари билан чиқарайлик. Элемент-индекс жуфтлигини ўзгарувчи сифатида белгилаймиз, уни функцияга ўтказilgan обектда топамиз:

pythonfor item in enumerate(lst):
  print(item)

Код бажарилганидан сўнг индекс ва элементдан иборат кортежлар чиқади:

python(0, 'a')
(1, 'b')
(2, 'c')

Мисол

Элементлар ва уларнинг индекcларини алохида олиш учун, уларни ва ўзгарувчилари орқали "распак" қилиш мумкин:

pythonfor item in enumerate(lst):
  key, value = item
  print(key)
  print(value)
  print()

Кодни бажариш натижаси:

python0, 'a'

1, 'b'

2, 'c'

Қисқартирилган шаклда индекcлар ва элементларни блокасида дастлабки қайта ёзиш мумкин:

pythonfor key, value in enumerate(lst):
  print(key)
  print(value)
  print()

Амалий маcалалар

Задание 1

Берилган рўйхат:

pythontst = [8, 6, -4, 2, -1]

Консольга элементларнинг қийматлари ва уларнинг индекcларини биринчи манфий сонгача чиқаринг.

Задание 2

Берилган рўйхат:

pythontst = ['a', 'b', 'c', 'd', 'e']

Консольга элементларнинг қийматлари ва уларнинг индекcларини чиқаринг:

python'a1'
'b2'
'c3'
'd4'
'e5'
Задание 3

Берилган рўйхат:

pythontst = [1, 2, 3, 4, 5]

Жуфт позицияда турган элементларни квадратга, тоқ позицияда турганларини эса кубга кўтаринг.