Python sanawynyň maglumat gurluşyny öwreniň - 1-nji bölüm


Maglumatlaryň gurluşy maglumat görnüşleriniň ýygyndysy, olaryň arasyndaky gatnaşyklar we maglumatlarda ulanylyp bilinjek funksiýalar ýa-da amallar. Maglumatlaryň görnüşi setir, Integer, loüzýän baha we ş.m. bolup biler.

  1. Elementleri goşmak, täzelemek ýa-da pozmak ýaly ýagdaý döredilenden soň üýtgedilip bilinjek obýektler.
  2. Sanawlar, Sözlük, Set, bytearray pifonda üýtgäp bilýän obýekt görnüşleri.

  1. Obýektiň ýagdaýy üýtgedilip bilinmez. Obýekt döredilenden soň, elementleri goşup, aýryp ýa-da täzeläp bilmeris.
  2. Setir, Integer, Tuples, Frozenset pitonda üýtgewsiz obýekt görnüşleriniň käbiri.

  1. Birmeňzeş maglumatlar gurluşy - Maglumat elementleri birmeňzeş maglumat görnüşine eýe bolar (mysal: Array).
  2. Geterogen maglumatlaryň gurluşy - Maglumat elementleri birmeňzeş maglumat görnüşinde bolup bilmez (mysal üçin: Sanaw, Toplumlar, toplumlar we ş.m.).

Gurlan maglumat gurluşynyň işleýşine düşünmezden ozal, maglumatlar gurluşy obýektleri bilen ulanyljak birnäçe gurlan funksiýalary göreliň.

  • dir (obj) - häsiýeti we usullary yzyna gaýtaryp berjek içerki funksiýa.
  • len (garşy) - Bir obýektiň uzynlygyny (elementleriň sanyny) gaýtaryň. Argument yzygiderlilik bolup biler (meselem, setir, baýt, tople, sanaw ýa-da aralyk) ýa-da ýygyndy (sözlük, toplum ýa-da doňdurylan toplum ýaly).
  • del - Bu gurlan açar söz, at giňişliginden bir obýekti ýok etmek ýa-da sanaw, sözlük we ş.m. ýaly obýektden zatlary aýyrmak üçin ulanylýar.
  • görnüş (garşy) - görnüş() funksiýasy ýa-da obýektiň görnüşini ýa-da geçen argumentlere esaslanyp täze görnüşli obýekti yzyna gaýtaryp berýär.
  • id() - Bu funksiýa obýektiň\şahsyýetini yzyna gaýtaryp berýär. Bu, ömrüniň dowamynda bu obýekt üçin üýtgeşik we hemişelik bolmagy kepillendirilen bitewi san.

Indi birnäçe möhüm jikme-jiklikleri görşüňiz ýaly, piton maglumat gurluşlaryna geçeliň.

Python içerki maglumat gurluşlary bilen gelýär, ulanyjylar öz maglumat gurluşlaryny kesgitläp bilýärler. Gurlan maglumat gurluşy SANAWY, Sözlük, TUPLE we SET-i öz içine alýar. Ulanyjy kesgitlän maglumat gurluşlary üçin käbir mysallar STACK, QUEUES, TREE, HASHMAP we ş.m.

Beýleki programmirleme dillerinden gelýän adamlar, massiw görnüşi bilen gaty tanyş bolarlar. Emma pitonda beýle bir umumy zat däl.

Bu ýerde sanaw bir massiw bilen meňzeş, ýöne sanaw bize islendik maglumat görnüşiniň (Geterogen) bahalaryny saklamaga mümkinçilik berýär, massiwde diňe belli bir görnüşdäki maglumatlar saklanar (int, float we ş.m.). Toplumy ulanmak üçin massiwi “massiw” modulyndan aç-açan import etmeli.

Python makalalarynyň bu tapgyrynda maglumat gurluşynyň we pifonyň içindäki maglumatlar gurluşynyň nämedigine serederis.

Sanaw dürli maglumatlar görnüşleriniň ýygyndysy bolan maglumat gurluşydyr.\Dürli maglumat görnüşlerini ýygnamak nämäni aňladýar? Sanaw setirleri, bitewi sanlary, ýüzýän nokatlaryň bahalaryny, ýerleşdirilen sanawy we ş.m. saklap biler.

Sanaw obýektleri\Üýtgeýän bolup, sanawyň içinde döredilen zatlara girip, üýtgedip ýa-da pozup boljakdygyny aňladýar. Sanawy goldaýan indeksleme. Sanawdaky her bir element adrese berilýär we bu salgy belli bir elementiň bahasyna girmek ýa-da üýtgetmek üçin ulanylyp bilner. .

  • Sanaw dörediň
  • Sanawy girizmek/girmek/üýtgetmek
  • Sanawy poz

Sanaw kwadrat ýaýdan peýdalanyp döredilip bilner.

>>> name_empty = []			# Empty list
>>> name = ['Karthi', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']	# list with string data type
>>> name_int = [1,2,3]			# list with Integer data type
>>> name_mixed = [name_int,name,1,2,3.14]	# list with nested list items.
>>> name_mixed
[[1, 2, 3], ['Karthi', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will'], 1, 2, 3.14]
>>> name_int
[1, 2, 3]

Obýektiň görnüşini barlamak üçin gurlan type() funksiýasyny ulanyp bileris.

>>> type(name)

Sanaw mysalynyň usullaryna we atributlaryna dir() funksiýasyny ulanyp bileris.

>>> dir(name)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

Sanawdaky elementleriň umumy sanyny len() usuly bilen bilip bileris.

>>> len(name)

Bar bolan sanawdan list.copy() usuly bilen täze sanaw döredip bileris.

>>> name_new = name.copy()
>>> name_new
['Karthi', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']

Islendik ýagdaýda list.insert (i, x) usuly bilen bir elementi sanawa girizip bileris.

>>> name = ['Leo','Matt','Kane','Scott','Petter','Will']
>>> name
['Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']
>>> name.insert(0,'Tom')	# Insert method takes 2 arguments (Index position, Item)
>>> name
['Tom', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']	# Tom is inserted at the 0th position.

Sanawa bir element goşmak üçin list.append (x) usulyny ulanyp bileris. Bu elementi sanawyň soňuna goýar.

>>> name = []
>>> len(name)
0
>>> name.append('Leo')
>>> name.append('Matt')
>>> name.append('Kane')
>>> print(name)
['Leo', 'Matt', 'Kane']

Sanawa birnäçe element goşmak üçin list.extend() usulyny ulanyp bileris.

>>> new_name = ['Gowtham','Martin','Luis']
>>> name.extend(new_name)
>>> name
['Will', 'Petter', 'Scott', 'Kane', 'Matt', 'Leo', 'Karthi', 'Will', 'Gowtham', 'Martin', 'Luis']

Iki sanawy birleşdirmek üçin + operatory hem ulanyp bileris. Sanawyň ikisi hem dürli maglumat görnüşinde bolup biler.

>>> a = [1,2,3]
>>> b = [2,3,3]
>>> c = a + b
>>> c
[1, 2, 3, 2, 3, 3]
>>> d = ['karthi','kenny']
>>> e = a + d
>>> e
[1, 2, 3, 'karthi', 'kenny']

Öň bellenip geçilişi ýaly sanawlar obýektler üýtgeýär. Sanaw elementini indeksiň ýagdaýyna salgylanmak we oňa baha bellemek arkaly üýtgedip bolýar.

>>> name									# Before modified
['Tom', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']
>>> name[0] = 'Karthi'
>>> name									# After Modified
['Karthi', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']

Sanaw pozitiw we otrisatel indeksirlemegi goldaýar.

Indeksirleme 0-dan, negatiw indeksleme -1-den başlaýar.

Sanaw elementine indeks ýagdaýyny ulanyp bileris.

>>> name[0]			# Accessing the List item at index 0
'Leo'
>>> name[1]
'Matt'
>>> name[4]
'Petter'
>>> name[5]
'Will'
>>> name[-1]			# Accessing the list item with negative indexing
'Will'
>>> name[-6]
'Leo'

Şeýle hem sanawdaky zatlara girmek üçin dilim ulanyp bileris. Dilimlemek, başlangyç, gutarmak, ädim parametrlerini kesgitlemek arkaly birnäçe elemente girmäge mümkinçilik berýär.

# SYNTAX: list[starting position, ending position, Step]

>>> name[0:3]
['Tom', 'Leo', 'Matt']
>>> name[:]
['Tom', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']
>>> name[:4]
['Tom', 'Leo', 'Matt', 'Kane']
>>> name[:-2]
['Tom', 'Leo', 'Matt', 'Kane', 'Scott']
>>> name[:-1]
['Tom', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter']
>>> name[:-1:2]
['Tom', 'Matt', 'Scott']

Berlen baha üçin ýüze çykýanlaryň sanyny list.count (x) usuly bilen tapyp bileris.

>>> name_int = [1,1,2,3,1]
>>> name_int.count(1)
3

Berlen elementiň Index ýagdaýyny list.index (x [, start [, end]]) usuly bilen tapyp bileris.

>>> name			# Inserted ‘Will’ at the end of the list. Now we have 2 name ‘Will’.
['Will', 'Petter', 'Scott', 'Kane', 'Matt', 'Leo', 'Karthi', 'Will']
>>> name.index('Will)	# Returns the index position of first occurence of x.
0
>>> name.index('Will',2)	# Starting index positon’2’ is given.
7
>>> name.index('Will',2,4)	# Starting and Ending Index position is given. Since there is no 					occurence of ‘Will’ within the given search position it will throw 					Value Error.
Traceback (most recent call last):
File "<stdin>", line 1, in 
ValueError: 'Will' is not in list

Sanawdaky zatlary tersine öwürmek üçin list.reverse() usulyny ulanyp bileris.

>>> name
['Karthi', 'Leo', 'Matt', 'Kane', 'Scott', 'Petter', 'Will']
>>> name.reverse()
>>> name
['Will', 'Petter', 'Scott', 'Kane', 'Matt', 'Leo', 'Karthi']

x ýagdaýynda sanawdan bir elementi aýyrmak üçin list.pop (x) usulyny ulanyp bileris. Bu funksiýa sanawdan elementi aýyrar we aýrylan elementi görkezer. x görkezilmedik bolsa, pop() usuly sanawdan iň soňky elementi yzyna getirer.

>>> name
['Will', 'Petter', 'Scott', 'Kane', 'Matt', 'Leo', 'Karthi', 'Will', 'Gowtham', 'Martin', 'Luis']
>>> name.pop(0)
'Will'
>>> name
['Petter', 'Scott', 'Kane', 'Matt', 'Leo', 'Karthi', 'Will', 'Gowtham', 'Martin', 'Luis']
>>> name.pop()
'Luis'

Şeýle hem sanawdan elementi aýyrmak üçin list.remove (x) usulyny ulanyp bileris. Bu ýerde x elementiň bahasyny alýar we x sanawda ýok bolsa, ValueError atýar.

>>> name = ['Leo','Matt','Kane','Scott','Petter','Will']
>>> name.remove('Leo')
>>> name
['Matt', 'Kane', 'Scott', 'Petter', 'Will']
>>> name.remove('Leo')
Traceback (most recent call last):
  File "", line 1, in 
ValueError: list.remove(x): x not in list

Sanawyň adyny kwadrat ýaýlara bellemek ýa-da list.clear() usuly bilen sanawy boş edip bileris.

>>> name1 = name.copy()
>>> name1
['Petter', 'Scott', 'Kane', 'Matt', 'Leo', 'Karthi', 'Will', 'Gowtham', 'Martin']
>>> name
['Petter', 'Scott', 'Kane', 'Matt', 'Leo', 'Karthi', 'Will', 'Gowtham', 'Martin']
>>> name = []			
>>> name
[]
>>> name1.clear()		
>>> name1
[]

Sanawy boşatmak ýa-da sanawdan bir elementi aýyrmak üçin sanaw usullaryny ulanmagyň ýerine, bu amallary ýerine ýetirmek üçin del açar sözde gurlan ulanyp bileris. “Del” açar söz sanawdaky obýekti ýatdan aýyryp ýa-da sanawdan bir elementi pozup ýa-da bir bölekden bir elementi pozup biler.

>>> name = ['Leo','Matt','Kane','Scott','Petter','Will']
>>> del name[0]
>>> name
['Matt', 'Kane', 'Scott', 'Petter', 'Will']
>>> del name[-3:]
>>> name
['Matt', 'Kane']
>>> del name[:]
>>> name
[]

id() funksiýasynda gurlan obýektiň\şahsyýetini yzyna gaýtaryp berýär. Bu bitewi bitewi, bu obýektiň ömrüniň dowamynda üýtgeşik we hemişelik bolmagyny kepillendirýär.

>>> id(name)
139979929658824
>>> del name
>>> id(name)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'name' is not defined

Bellik: sanaw üýtgeýjisini del() ulanyp ýadyňdan aýyrdyk, şonuň üçin at ýalňyşlygyny goýberýär.

help() funtion:

Kömek funksiýasy() belli bir obýekt ýa-da şol obýektiň usullary barada jikme-jik maglumat almak üçin örän peýdalydyr.

help(object)
help(object.method)

Şu makalada şu wagta çenli sanaw sanawlaryny ulanyp, sanaw obýektlerini saklamak, girmek, üýtgetmek, ýok etmek üçin sanaw maglumat gurluşyny nädip ulanyp boljakdygyny gördük. Şeýle hem gaty täsirli funksiýalar bolan id(), dir(), görnüş(), kömek() ýaly içerki funksiýalary gördük. Şeýle hem, sanawy döretmegiň has gysga we okalýan usulyny üpjün edýän pifonda sanaw düşünişimiz bar.