Rhestrau ( rhestr ) yn Python. Rhestr Swyddogaethau a Dulliau

Mewn rhaglennu, efallai bod rhestrau yr un mor ddefnyddiol â strwythur data ag araeau. Beth yw rhestrau, sut i'w creu? Sut i weithio gyda rhestrau yn Python? Byddwch yn dysgu am hyn o'n herthygl.

Beth yw rhestrau yn Python?

Rhestrau ( rhestr ) yn Python. Rhestr Swyddogaethau a Dulliau
Mathau Data Python: Rhestrau

Gellir adnabod rhestrau yn rhannol ag araeau, ond gwahaniaeth a mantais rhestrau (fel arall fe'u gelwir hefyd yn rhestrau) yw y gallant gyfuno gwahanol fathau o ddata. Hynny yw, mae'r rhestriad yn agor mwy o bosibiliadau ar gyfer storio unrhyw ddilyniant o wrthrychau. Mae newidyn, a elwir yn rhestr, yn cynnwys cyfeiriad at strwythur yn y cof sy'n cynnwys cyfeiriadau at strwythurau amgen.

Mae rhestr yn Python yn gasgliad trefnus o wrthrychau o fathau cymysg y gellir eu haddasu ac y gall eu gwrthrychau fod yn wahanol.

Beth mae'n ei olygu? Gadewch i ni edrych ar y diffiniad yn fanwl.

Gellir newid maint y rhestriad, ei leihau, ychwanegu llinellau newydd ato. Gallwch hefyd newid strwythur cyfan y rhestr. Cofiwch bob tro y defnyddir dull mewn rhestr, y newidir y rhestr wreiddiol, nid y copi.

I gael mwy o eglurder, gallwch chi feddwl am restriad yn Python fel rhestr o gynhyrchion y mae angen eu prynu mewn siop. Os, wrth wneud cynllun siopa, mae'r holl eitemau angenrheidiol wedi'u lleoli un o dan y llall, a bod gan bob un ohonynt ei linell ei hun, yna mae'r rhestriad yn Python yn cynnwys yr holl elfennau wedi'u gwahanu gan atalnodau ac mewn cromfachau sgwâr fel y gall Python ddeall hynny nodir rhestr yma. Amgaeir yr elfennau mewn dyfynodau. Mae hwn yn amod gorfodol, oherwydd mae pob elfen yn llinell ar wahân.

Ffyrdd o greu rhestr

Gan symud ymlaen at yr enghraifft glasurol, gadewch i ni greu rhestr y byddwn yn ei defnyddio a'i haddasu yn y dyfodol. Mae sawl ffordd o gynhyrchu rhestrau.

Un ohonynt yw'r cais rhestr swyddogaethau adeiledig ( ). I wneud hyn, mae angen i chi brosesu unrhyw wrthrych y gellir ei ailadrodd (llinyn, tuple, neu restr sy'n bodoli eisoes). Yn yr achos hwn, llinyn.

Dyma beth sy'n digwydd yn y diwedd:

>>> rhestr ('rhestr') ['c', 'n', 'i', 'c', 'o', 'i']

Mae'r ail enghraifft yn dangos y gall rhestrau gynnwys nifer anghyfyngedig o wrthrychau gwahanol iawn. Hefyd, gall y rhestriad aros yn wag.

>>> s = [] # Rhestr wag >>> l = ['s', 'p', ['isok'], 2] >>> s [] >>> l['s', 'p' , ['isok'], 2]

Y ffordd nesaf, trydydd, o ffurfio rhestrau yw'r hyn a elwir generadur rhestru.

Mae'r generadur rhestru yn luniad cystrawen ar gyfer creu rhestrau. Mae'n debyg i'r ddolen ar gyfer.

>>> c = [ c * 3 am c yn 'rhestr'] >>> c ['lll', 'iii', 'sss', 'ttt']

Gellir ei ddefnyddio hefyd i greu strwythurau mwy swmpus:

>>> c = [ c * 3 am c yn 'rhestr' os c!= 'i'] >>> c ['llll', 'sss', 'ttt'] >>> c = [c + d am c yn 'list' if c!= 'i' am d yn 'spam' os d!= 'a'] >>> c ['ls', 'lp', 'lm', 'ss', 'sp' , 'sm', 'ts', 'tp', 'tm']

Fodd bynnag, nid yw'r dull cynhyrchu hwn bob amser yn effeithlon wrth lunio rhestrau lluosog. Felly, fe'ch cynghorir i ddefnyddio dolen ar gyfer cynhyrchu rhestrau.

Os oes angen i chi gyfeirio at unrhyw elfen o'r rhestr, yna defnyddir mynegeion. Mae gan bob elfen ei mynegai ei hun.

Y mynegai yw nifer yr elfen yn y rhestr.

Os ydych chi am lenwi'r rhestriad ag elfennau sy'n ailadrodd, yr un fath, defnyddir y symbol *. Er enghraifft, mae angen i chi ychwanegu tri rhif unfath at y rhestriad: [100] * 3.

Swyddogaethau rhestru

swyddogaethau – efallai mai dyma brif fantais Python dros ieithoedd rhaglennu eraill. Gellir cymhwyso swyddogaethau adeiledig sylfaenol i restrau.

Ystyriwch y mwyaf poblogaidd ohonynt:

  • rhestr (ystod ( )) – os mai'r dasg yw creu rhestr ddilyniannol, yna defnyddir y ffwythiant amrediad. Mae gan y swyddogaeth hon y ffurfiau canlynol:
  1. ystod (diwedd). Fe'i defnyddir pan fo angen creu rhestriad o sero i rif meidraidd.
  2. ystod (dechrau, diwedd). Mae rhifau cychwyn a diwedd wedi'u nodi.
  3. ystod (dechrau, diwedd, cam). Mae'r paramedr cam yn pennu'r nodwedd ddethol. Er enghraifft, os oes angen i chi ddewis pob pumed rhif o ddilyniant o 1 i 21, yna bydd y rhestriad dilynol yn edrych fel: [10,15, 20].

Gall y swyddogaeth amrediad leihau'n sylweddol faint o god.

  • llin (rhestr) – yn caniatáu ichi ddarganfod faint o elfennau sydd yn y rhestr.
  • didoli (rhestr, [allwedd]) – didoli'r gwrthrychau yn y rhestr mewn trefn esgynnol.
  • uchafswm (rhestr) – yn dychwelyd yr elfen fwyaf.
  • mun (rhestr) - swyddogaeth gyferbyn - yn caniatáu ichi ddychwelyd yr elfen gyda'r gwerth lleiaf.

Gallwch hefyd ddefnyddio swyddogaethau adeiledig eraill:

  • rhestr (tuple) - Trosi gwrthrych tuple i restr.
  • swm (rhestr) – yn adio holl elfennau'r rhestr os yw'r holl werthoedd yn rhifau, yn berthnasol i gyfanrifau a degolion. Fodd bynnag, nid yw hi bob amser yn gwneud pethau'n iawn. Os oes elfen nad yw'n rhifol yn y rhestr, bydd y ffwythiant yn taflu gwall: “TypeError: math(au) operand heb ei gefnogi ar gyfer +: 'int' a 'str'".

Dulliau Rhestru

Rhestrau ( rhestr ) yn Python. Rhestr Swyddogaethau a Dulliau
Rhestr o Ddulliau Python

Gadewch i ni fynd yn ôl at ein rhestr o eitemau i'w prynu yn y siop a'i alw'n rhestr siopau:

rhestr siopau = []

Nesaf, ystyriwch y dulliau rhestru:

  • atodiad (eitem) – gyda'i help, gallwch ychwanegu elfen at y rhestr. Yn yr achos hwn, bydd yr elfen newydd ar y diwedd.

Gadewch i ni lenwi ein rhestr newydd gyda'r cynhyrchion cywir:

rhestr siopau.atodiad(bara)

rhestr siopau.atodiad(llaeth)

  • rhestr.ymestyn (A) – yn ychwanegu “rhestr i restr”. Mae'r nodwedd hon yn arbed amser oherwydd gallwch ychwanegu sawl eitem ar yr un pryd. Gadewch i ni ddweud bod gennym ni restr o ffrwythau eisoes, mae angen i ni eu hychwanegu at y brif restr.

rhestr siopau.extend(ffrwythau)

  • mewnosod (mynegai, eitem) – yn mewnosod ar yr elfen gyda'r mynegai penodedig y gwerth penodedig cyn y mynegai penodedig.
  • cyfrif (eitem) – yn dangos nifer yr ailadroddiadau o'r elfen.
  • rhestr.tynnu (eitem) yw'r swyddogaeth gyferbyn rhestr.atodiad (x). Gellir ei ddefnyddio i gael gwared ar unrhyw elfen. Os nad yw'r eitem a ddewiswyd yn y rhestr, adroddir gwall.
  • pop ([mynegai]) - yn tynnu'r elfen a ddewiswyd ac yn ei dychwelyd yn yr un modd. Os nad yw'r elfen wedi'i nodi, yna caiff yr elfen olaf ei thynnu o'r rhestr.
  • trefnu ([allwedd]) - yn rhoi'r elfennau yn y rhestriad mewn trefn esgynnol, ond gallwch hefyd nodi swyddogaeth.
  • mynegai (eitem) – yn dangos mynegai'r elfen gyntaf a ddewiswyd.
  • Gallwch ehangu'r rhestr, hynny yw, adlewyrchu ei holl elfennau, gan ddefnyddio'r dull cefn (rhestr). Mae'r elfen olaf yn dod yn gyntaf, yr elfen olaf ond un yn dod yn ail, ac yn y blaen.
  • Crëir copi o'r rhestr gyda'r gorchymyn copi (rhestr).
  • copi dwfn (rhestr) - copïo dwfn.
  • Tynnwch yr holl elfennau rhestru gan ddefnyddio'r dull clir (rhestr).

Mae'n werth nodi bod dulliau rhestru yn wahanol i ddulliau llinynnol gan eu bod yn newid y rhestr ar unwaith, hynny yw, nid oes angen dychwelyd canlyniad gweithredu.

>>> l = [1, 2, 3, 5, 7] >>> l.sort() >>> l [1, 2, 3, 5, 7] >>> l = l.sort() > >> print(l) Dim

Mae'r canlynol yn enghraifft o weithio gyda rhestrau:

>>> a = [66.25, 333, 333, 1, 1234.5] >>> print(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]

Gadael ymateb