Хелпикс

Главная

Контакты

Случайная статья





import os 1 страница



С т р у к т у р ы д а н н ы х

 

 

С т р у к т у р ы д а н н ы х – э т о, п о с у т и, и е с т ь с т р у к т у р ы , к о т о р ы е м о г у т х р а н и т ь н е к о т о р ы е д а н н ы е в м е с т е. Д р у г и м и с л о в а м и, о н и и с п о л ь з у ю т с я д л я х р а н е н и я с в я з а н н ы х д а н н ы х.

 

Python с у щ е с т в у ю т ч е т ы р е в с т р о е н н ы х с т р у к т у р ы д а н н ы х: с п и с о к, к о р т е ж, с л о в а р ь и м н о ж е с т в о. П о с м о т р и м, к а к и м и п о л ь з о в а т ь с я, и к а к о н и м о г у т о б л е г ч и т ь н а м ж и з н ь.

 

 

12. 1 С п и с о к

 

С п и с о к 1 – э т о с т р у к т у р а д а н н ы х, к о т о р а я с о д е р ж и т у п о р я д о ч е н н ы й н а б о р э л е м е н т о в, т. е. х р а н и т п о с л е д о в а т е л ь н о с т ь э л е м е н т о в. Э т о л е г к о п р е д с т а в и т ь, е с л и в с п о м н и т ь с п и с о к п о к у п о к, в к о т о р о м п е р е ч и с л я е т с я, ч т о н у ж н о к у п и т ь, с т е м л и ш ь и с к л ю ч е н и е м, ч т о в с п и с к е п о к у п о к к а ж д ы й э л е м е н т о б ы ч н о р а з м е щ а е т с я н а о т д е л ь н о й с т р о к е, т о г д а к а к в Python о н и р а з д е л я ю т с я з а п я т ы м и.

 

С п и с о к э л е м е н т о в д о л ж е н б ы т ь з а к л ю ч ё н в к в а д р а т н ы е с к о б к и, ч т о б ы Python п о н я л, ч т о э т о с п и с о к. К а к т о л ь к о с п и с о к с о з д а н, м о ж н о д о б а в л я т ь, у д а л я т ь и л и и с к а т ь э л е м е н т ы

н ё м. П о с к о л ь к у э л е м е н т ы м о ж н о д о б а в л я т ь и у д а л я т ь, м ы г о в о р и м, ч т о с п и с о к – э т о и з м е н я е м ы й т и п д а н н ы х, т. е. е г о м о ж н о м о д и ф и ц и р о в а т ь.

 

 

12. 2 К р а т к о е в в е д е н и е в о б ъ е к т ы и к л а с с ы

 

Х о т я я и с т а р а л с я д о с и х п о р о т т я н у т ь о б с у ж д е н и е о б ъ е к т о в и к л а с с о в, н а д а н н о м э т а п е в с ё ж е н е о б х о д и м о н е к о т о р о е п о я с н е н и е, ч т о б ы в ы л у ч ш е п о н я л и и д е ю с п и с к о в. М ы и з у ч и м э т у т е м у д е т а л ь н о в е ё с о б с т в е н н о й г л а в е .

 

С п и с о к – э т о о д и н и з п р и м е р о в и с п о л ь з о в а н и я о б ъ е к т о в и к л а с с о в. К о г д а м ы н а з н а ч а е м н е к о т о р о й п е р е м е н н о й i з н а ч е н и е, с к а ж е м, ц е л о е ч и с л о 5, э т о м о ж н о п р е д с т а в и т ь с е б е к а к с о з д а н и е о б ъ е к т а (т. е. э к з е м п л я р а ) i к л а с с а (т. е. т и п а ) int. Ч т о б ы л у ч ш е п о н я т ь э т о, п р о ч и т а й т е help(int).

 

К л а с с м о ж е т т а к ж е и м е т ь м е т о д ы, т. е. ф у н к ц и и, о п р е д е л ё н н ы е д л я и с п о л ь з о в а н и я т о л ь к о п р и м е н и т е л ь н о к д а н н о м у к л а с с у. Э т о т ф у н к ц и о н а л б у д е т д о с т у п е н т о л ь к о к о г д а и м е е т -с я о б ъ е к т д а н н о г о к л а с с а. Н а п р и м е р, Python п р е д о с т а в л я е т м е т о д append д л я к л а с с а list, к о т о р ы й п о з в о л я е т д о б а в л я т ь э л е м е н т к к о н ц у с п и с к а. Т а к mylist. append('and item')

 

list – а н г л. «с п и с о к » (п р и м. п е р е в. )


 


A Byte of Python (Russian), В е р с и я 2. 01

 

 

д о б а в и т э т у с т р о к у к с п и с к у mylist. О б р а т и т е в н и м а н и е н а о б о з н а ч е н и е т о ч к о й д л я д о -с т у п а к м е т о д а м о б ъ е к т о в.

 

К л а с с т а к ж е м о ж е т и м е т ь п о л я, к о т о р ы е п р е д с т а в л я ю т с о б о й н е ч т о и н о е, к а к п е р е м е н -н ы е, о п р е д е л ё н н ы е д л я и с п о л ь з о в а н и я т о л ь к о п р и м е н и т е л ь н о к д а н н о м у к л а с с у. Э т и п е -р е м е н н ы е /и м е н а м о ж н о и с п о л ь з о в а т ь т о л ь к о т о г д а, к о г д а и м е е т с я о б ъ е к т э т о г о к л а с с а. Д о с т у п к п о л я м т а к ж е о с у щ е с т в л я е т с я п р и п о м о щ и т о ч к и. Н а п р и м е р, mylist. field.

 

П р и м е р: (с о х р а н и т е к а к using_list. py)

 

Э т о м о й с п и с о к п о к у п о к

 

shoplist = ['я б л о к и ', 'м а н г о ', 'м о р к о в ь ', 'б а н а н ы ']

 

print ('Я д о л ж е н с д е л а т ь ', len(shoplist), 'п о к у п о к. ')

 

print ('П о к у п к и: ', end=' ')

 

for item in shoplist:

 

print (item, end=' ')

 

print (' \n Т а к ж е н у ж н о к у п и т ь р и с а. ')

 

shoplist. append('р и с ')

 

print ('Т е п е р ь м о й с п и с о к п о к у п о к т а к о в: ', shoplist)

 

print ('О т с о р т и р у ю -к а я с в о й с п и с о к ')

 

shoplist. sort()

 

print ('О т с о р т и р о в а н н ы й с п и с о к п о к у п о к в ы г л я д и т т а к: ', shoplist)

 

print ('П е р в о е, ч т о м н е н у ж н о к у п и т ь, э т о ', shoplist[0])

 

olditem = shoplist[0]

 

del shoplist[0]

 

print ('Я к у п и л ', olditem)

 

print ('Т е п е р ь м о й с п и с о к п о к у п о к: ', shoplist)

 

В ы в о д:

 

$ python3 using_list. py

 

Я д о л ж е н с д е л а т ь 4 п о к у п о к.

 

П о к у п к и: я б л о к и м а н г о м о р к о в ь б а н а н ы

 

Т а к ж е н у ж н о к у п и т ь р и с а.

 

Т е п е р ь м о й с п и с о к п о к у п о к т а к о в: ['я б л о к и ', 'м а н г о ', 'м о р к о в ь ', 'б а н а н ы ', 'р и с ']

 

О т с о р т и р у ю -к а я с в о й с п и с о к

 

О т с о р т и р о в а н н ы й с п и с о к п о к у п о к в ы г л я д и т т а к: ['б а н а н ы ', 'м а н г о ', 'м о р к о в ь ', 'р и с ',

 

'я б л о к и ']

 

П е р в о е, ч т о м н е н у ж н о к у п и т ь, э т о б а н а н ы

 

Я к у п и л б а н а н ы

 

Т е п е р ь м о й с п и с о к п о к у п о к: ['м а н г о ', 'м о р к о в ь ', 'р и с ', 'я б л о к и ']

 

К а к э т о р а б о т а е т:


 

 

80                                                                                                                     Г л а в а 12. С т р у к т у р ы д а н н ы х


A Byte of Python (Russian), В е р с и я 2. 01

 

 

П е р е м е н н а я shoplist – э т о с п и с о к п о к у п о к ч е л о в е к а, и д у щ е г о н а р ы н о к. В shoplist м ы х р а н и м т о л ь к о с т р о к и с н а з в а н и я м и т о г о, ч т о н у ж н о к у п и т ь, о д -н а к о в с п и с о к м о ж н о д о б а в л я т ь л ю б ы е о б ъ е к т ы , в к л ю ч а я ч и с л а и л и д а ж е д р у -г и е с п и с к и.

 

М ы т а к ж е и с п о л ь з о в а л и ц и к л for.. in д л я и т е р а ц и и п о э л е м е н т а м с п и с к а.

 

В ы у ж е, н а в е р н о е, п о н я л и, ч т о с п и с о к я в л я е т с я т а к ж е и п о с л е д о в а т е л ь н о с т ь ю.

 

О с о б е н н о с т и п о с л е д о в а т е л ь н о с т е й б у д у т р а с с м о т р е н ы н и ж е .

 

О б р а т и т е в н и м а н и е н а и с п о л ь з о в а н и е к л ю ч е в о г о а р г у м е н т а end в ф у н к ц и и print, к о т о р ы й п о к а з ы в а е т, ч т о м ы х о т и м з а к о н ч и т ь в ы в о д п р о б е л о м в м е с т о о б ы ч н о г о п е р е в о д а с т р о к и.

 

Д а л е е м ы д о б а в л я е м э л е м е н т к с п и с к у п р и п о м о щ и append – м е т о д а о б ъ е к т а с п и с к а, к о т о р ы й у ж е о б с у ж д а л с я р а н е е. З а т е м м ы п р о в е р я е м, д е й с т в и т е л ь н о л и э л е м е н т б ы л д о б а в л е н к с п и с к у, в ы в о д я с о д е р ж и м о е с п и с к а н а э к р а н п р и п о м о щ и п р о с т о й п е р е д а ч и э т о г о с п и с к а ф у н к ц и и print, к о т о р а я а к к у р а т н о е г о п е ч а т а е т.

 

З а т е м м ы с о р т и р у е м с п и с о к, и с п о л ь з у я м е т о д sort о б ъ е к т а с п и с к а. И м е й т е в в и д у, ч т о э т о т м е т о д д е й с т в у е т н а с а м с п и с о к, а н е в о з в р а щ а е т и з м е н ё н н у ю е г о в е р с и ю. В э т о м о т л и ч и е о т т о г о, к а к п р о и с х о д и т р а б о т а с о с т р о к а м и. И м е н -н о э т о и м е е т с я в в и д у, к о г д а м ы г о в о р и м, ч т о с п и с к и и з м е н я е м ы , а с т р о к и – н е и з м е н я е м ы .

 

Д а л е е п о с л е с о в е р ш е н и я п о к у п к и м ы х о т и м у д а л и т ь е ё и з с п и с к а. Э т о д о с т и -г а е т с я п р и м е н е н и е м о п е р а т о р а del. М ы у к а з ы в а е м, к а к о й э л е м е н т с п и с к а м ы х о т и м у д а л и т ь, и о п е р а т о р del у д а л я е т е г о. М ы у к а з ы в а е м, ч т о х о т и м у д а л и т ь п е р в ы й э л е м е н т с п и с к а, и п о э т о м у п и ш е м “del shoplist[0]” (п о м н и т е, ч т о Python н а ч и н а е т о т с ч ё т с 0).

 

Ч т о б ы у з н а т ь б о л е е д е т а л ь н о о б о в с е х м е т о д а х о б ъ е к т а с п и с к а, п р о с м о т р и т е help(list).

 

 

12. 3 К о р т е ж

 

К о р т е ж и с л у ж а т д л я х р а н е н и я н е с к о л ь к и х о б ъ е к т о в в м е с т е. И х м о ж н о р а с с м а т р и в а т ь к а к а н а л о г с п и с к о в, н о б е з т а к о й о б ш и р н о й ф у н к ц и о н а л ь н о с т и, к о т о р у ю п р е д о с т а в л я е т к л а с с с п и с к а. О д н а и з в а ж н е й ш и х о с о б е н н о с т е й к о р т е ж е й з а к л ю ч а е т с я в т о м, ч т о о н и н е и з м е -н я е м ы, т а к ж е, к а к и с т р о к и. Т. е. м о д и ф и ц и р о в а т ь к о р т е ж и н е в о з м о ж н о.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.