Рӯйхатҳо ( рӯйхат ) дар Python. Функсияҳо ва усулҳоро номбар кунед

Дар барномасозӣ, рӯйхатҳо шояд ҳамчун сохтори додаҳо ҳамчун массивҳо муфид бошанд. Рӯйхатҳо чистанд, онҳоро чӣ гуна бояд эҷод кард? Чӣ тавр бо рӯйхатҳо дар Python кор кардан мумкин аст? Шумо дар ин бора аз мақолаи мо мефаҳмед.

Рӯйхатҳо дар Python чист?

Рӯйхатҳо ( рӯйхат ) дар Python. Функсияҳо ва усулҳоро номбар кунед
Намудҳои маълумоти Python: Рӯйхатҳо

Рӯйхатҳоро қисман бо массивҳо муайян кардан мумкин аст, аммо фарқият ва бартарии рӯйхатҳо (дар акси ҳол онҳоро листинг низ меноманд) дар он аст, ки онҳо метавонанд намудҳои гуногуни маълумотро муттаҳид кунанд. Яъне, листинг барои нигоҳ доштани ҳама гуна пайдарпайии объектҳо имкониятҳои бештар мекушояд. Тағйирёбанда, ки рӯйхат номида мешавад, дорои истинод ба сохтори хотира мебошад, ки истинод ба сохторҳои алтернативӣ дорад.

Рӯйхат дар Python маҷмӯи фармоишии объектҳои намудҳои омехта мебошад, ки метавонанд тағир дода шаванд ва объектҳои онҳо метавонанд фарқ кунанд.

Ин чӣ маъно дорад? Биёед таърифро ба таври муфассал дида бароем.

Андозаи рӯйхатро метавон тағир дод, кам кард ва ба он сатрҳои нав илова кард. Шумо инчунин метавонед тамоми сохтори рӯйхатро тағир диҳед. Дар хотир доред, ки ҳар дафъае, ки усул дар рӯйхат истифода мешавад, рӯйхати аслӣ иваз карда мешавад, на нусха.

Барои возеҳи бештар, шумо метавонед дар бораи рӯйхат дар Python ҳамчун рӯйхати маҳсулоте фикр кунед, ки бояд дар мағоза харида шаванд. Агар ҳангоми таҳияи нақшаи харид, ҳамаи ҷузъҳои зарурӣ дар поёни якдигар ҷойгир бошанд ва ҳар яки онҳо хати худро дошта бошанд, пас листинг дар Python ҳамаи унсурҳои бо вергул ва дар қавсҳои мураббаъ ҷудошударо дар бар мегирад, то Python фаҳмад, ки дар ин ҷо рӯйхат нишон дода шудааст. Элементҳо дар дохили нохунак дохил карда шудаанд. Ин шарти ҳатмист, зеро ҳар як элемент як хати алоҳида аст.

Роҳҳои сохтани рӯйхат

Гузаштан ба мисоли классикӣ, биёед рӯйхатеро эҷод кунем, ки мо дар оянда истифода ва тағир медиҳем. Якчанд роҳҳо барои тавлиди рӯйхат вуҷуд доранд.

Яке аз онҳо барнома мебошад рӯйхати функсияҳои дарунсохт ( ). Барои ин ба шумо лозим аст, ки ҳама гуна объектеро коркард кунед, ки онро такрор кардан мумкин аст (сатр, навор ё рӯйхати мавҷуда). Дар ин ҳолат, як сатр.

Ин аст он чизе ки дар охир рӯй медиҳад:

>>> рӯйхат('рӯйхат') ['c', 'n', 'i', 'c', 'o', 'to']

Мисоли дуюм нишон медиҳад, ки рӯйхатҳо метавонанд шумораи номаҳдуди объектҳои хеле гуногунро дар бар гиранд. Инчунин, рӯйхат метавонад холӣ монад.

>>> s = [] # Рӯйхати холӣ >>> l = ['s', 'p', ['isok'], 2] >>> s [] >>> l ['s', 'p' , ['isok'], 2]

Роҳи навбатии сеюм, роҳи ташаккули рӯйхат ба ном аст генератори листинг.

Генератори листинг як сохтори синтаксисӣ барои эҷоди рӯйхатҳо мебошад. Он ба даври for шабеҳ аст.

>>> c = [c * 3 барои c дар 'рӯйхат'] >>> c ['lll', 'iii', 'sss', 'ttt']

Он инчунин метавонад барои сохтани сохторҳои ҳаҷмтар истифода шавад:

>>> c = [c * 3 барои c дар 'рӯйхат' агар c != 'i'] >>> c ['lll', 'sss', 'ttt'] >>> c = [c + d барои c дар 'рӯйхат' агар c != 'i' барои d дар 'спам' агар d != 'a'] >>> c ['ls', 'lp', 'lm', 'ss', 'sp' , 'sm', 'ts', 'tp', 'tm']

Аммо, ин усули насл на ҳамеша ҳангоми тартиб додани рӯйхатҳои сершумор самаранок аст. Аз ин рӯ, тавсия дода мешавад, ки ҳалқаи for -ро барои тавлиди рӯйхатҳо истифода баред.

Агар ба шумо лозим аст, ки ба ягон унсури рӯйхат муроҷиат кунед, индексҳо истифода мешаванд. Ҳар як элемент индекси худро дорад.

Индекс рақами элементи рӯйхат аст.

Агар шумо хоҳед, ки рӯйхатро бо унсурҳои такроршаванда ва якхела пур кунед, аломати * истифода мешавад. Масалан, шумо бояд ба листинг се рақами якхела илова кунед: [100] * 3.

Функсияҳои рӯйхат

функсияҳои - ин шояд бартарии асосии Python нисбат ба дигар забонҳои барномасозӣ бошад. Функсияҳои асосии дарунсохт метавонанд ба рӯйхатҳо татбиқ карда шаванд.

Дар байни онҳо маъмултаринро баррасӣ кунед:

  • рӯйхат (диапазон( )) – агар вазифа сохтани рӯйхати пайдарпай бошад, он гоҳ функсияи диапазон истифода мешавад. Ин функсия дорои шаклҳои зерин аст:
  1. диапазон (охири). Он вақте истифода мешавад, ки листингро аз сифр то рақами ниҳоӣ эҷод кардан лозим аст.
  2. диапазон (оғоз, анҷом). Рақамҳои оғоз ва анҷоми онҳо муайян карда шудаанд.
  3. диапазон (оғоз, анҷом, қадам). Параметри қадам хусусияти интихобро муайян мекунад. Масалан, агар ба шумо лозим аст, ки ҳар як рақами панҷумро аз пайдарпаӣ аз 1 то 21 интихоб кунед, пас рӯйхат дар натиҷа чунин хоҳад буд: [10,15, 20].

Функсияи диапазон метавонад миқдори кодро ба таври назаррас коҳиш диҳад.

  • зағир (рӯйхат) - ба шумо имкон медиҳад, ки дар рӯйхат чанд элемент мавҷуд аст.
  • мураттаб (рӯйхат, [калид]) – объектҳоро дар рӯйхат бо тартиби афзоиш мураттаб мекунад.
  • макс (рӯйхат) – бузургтарин элементро бармегардонад.
  • дақиқа (рӯйхат) – Функсияи муқобил – ба шумо имкон медиҳад, ки элементро бо арзиши ҳадди ақал баргардонед.

Шумо инчунин метавонед дигар вазифаҳои дарунсохтро истифода баред:

  • рӯйхат (пайдо) – Объекти наворро ба рӯйхат табдил медиҳад.
  • сум (рӯйхат) – ҷамъбасти ҳамаи унсурҳои рӯйхат, агар ҳамаи арзишҳо адад бошанд, ҳам ба ададҳои бутун ва ҳам ба ададҳои даҳӣ дахл доранд. Бо вуҷуди ин, вай на ҳамеша дуруст аст. Агар дар рӯйхат унсури ғайрирақамӣ мавҷуд бошад, функсия хато мекунад: "TypeError: навъи операндҳои дастгирӣнашаванда барои +: 'int' ва 'str'".

Усулҳои рӯйхат

Рӯйхатҳо ( рӯйхат ) дар Python. Функсияҳо ва усулҳоро номбар кунед
Рӯйхати усулҳои Python

Биёед ба рӯйхати ашёе, ки дар мағоза харидем, бармегардем ва онро рӯйхати мағозаҳо меноманд:

рӯйхати мағозаҳо = []

Сипас, усулҳои рӯйхатро баррасӣ кунед:

  • замима (банд) - бо ёрии он шумо метавонед ба рӯйхат элемент илова кунед. Дар ин ҳолат, унсури нав дар охири он хоҳад буд.

Биёед рӯйхати нави худро бо маҳсулоти мувофиқ пур кунем:

listlist.append(нон)

listlist.append(шир)

  • рӯйхат.дароз кардан (A) - илова мекунад "рӯйхат ба рӯйхат". Ин хусусият вақтро сарфа мекунад, зеро шумо метавонед дар як вақт якчанд ашё илова кунед. Фарз мекунем, ки мо аллакай рӯйхати меваҳоро дорем, мо бояд онҳоро ба рӯйхати асосӣ илова кунем.

shoplist.extend(мева)

  • ворид кардан (индекс, адад) – ба элементи дорои индекси муайяншуда арзиши муайянро пеш аз индекси муайяншуда дохил мекунад.
  • lcount (адад) – шумораи такрори элементро нишон медиҳад.
  • рӯйхат.хориҷ (адад) вазифаи муқобил аст рӯйхат.илова кардан (x). Он метавонад барои хориҷ кардани ҳама гуна элемент истифода шавад. Агар ҷузъи интихобшуда дар рӯйхат набошад, хатогӣ хабар дода мешавад.
  • поп([индекс]) – элементи интихобшударо хориҷ мекунад ва ба ҳамон тарз бармегардонад. Агар элемент муайян нашуда бошад, он гоҳ элементи охирин аз рӯйхат хориҷ карда мешавад.
  • навъ ([калид]) – унсурҳоро дар рӯйхат бо тартиби афзоиш ҷойгир мекунад, аммо шумо инчунин метавонед функсияро муайян кунед.
  • индекс (банди) – индекси элементи аввалини интихобшударо нишон медиҳад.
  • Шумо метавонед бо истифода аз усул рӯйхатро васеъ кунед, яъне ҳама унсурҳои онро инъикос кунед баръакс (рӯйхат). Элементи охирин якум мешавад, элементи пеш аз охирин дуюм мешавад ва ғайра.
  • Нусхаи рӯйхат бо фармон сохта мешавад нусхабардорӣ (рӯйхат).
  • нусхаи чуқур (рӯйхат) - нусхабардории амиқ.
  • Ҳама унсурҳои рӯйхатро бо истифода аз усул хориҷ кунед равшан (рӯйхат).

Қобили зикр аст, ки усулҳои листинг аз усулҳои сатр бо он фарқ мекунанд, ки онҳо рӯйхатро фавран иваз мекунанд, яъне барои баргардонидани натиҷаи иҷро зарурат нест.

>>> l = [1, 2, 3, 5, 7] >>> l.sort() >>> l [1, 2, 3, 5, 7] >>> l = l.sort() > >> чоп (л) Ҳеҷ

Дар зер намунаи кор бо рӯйхатҳо оварда шудааст:

>>> a = [66.25, 333, 333, 1, 1234.5] >>> чоп (a.count(333), a.count(66.25), a.count('x')) 2 1 0 >>> a.insert(2, -1) >>> a.append(333) >>> a [66.25, 333, -1, 333, 1, 1234.5, 333] >>> a.index(333) 1 >> > a.remove(333) >>> a [66.25, -1, 333, 1, 1234.5, 333] >>> a.reverse() >>> a [333, 1234.5, 1, 333, -1, 66.25 ] >>> a.sort() >>> a [-1, 1, 66.25, 333, 333, 1234.5]

Дин ва мазҳаб