Tgħallem Python List Data Struttura - Parti 1


L-Istruttura tad-Dejta hija ġabra ta' tipi ta' data, ir-relazzjoni bejniethom u l-funzjonijiet jew l-operazzjonijiet li jistgħu jiġu applikati fuq id-data. It-tip tad-dejta jista 'jkun string, Integer, Floating value u l-bqija.

  1. Oġġetti li l-istat tagħhom jista' jinbidel ladarba jinħoloq bħaż-żieda, l-aġġornament jew it-tħassir ta' elementi.
  2. Listi, Dizzjunarju, Sett, bytearray huma tipi ta' oġġetti mutevoli f'python.

  1. L-istat tal-oġġett ma jistax jiġi modifikat. Ladarba l-oġġett jinħoloq, ma nistgħux inżidu, inneħħu jew naġġornaw elementi.
  2. String, Integer, Tuples, Frozenset huma wħud mit-tipi ta' oġġetti immutabbli f'python.

  1. Struttura Omoġenja tad-Dejta – L-elementi tad-dejta se jkunu tal-istess tip ta' dejta (eż: Array).
  2. Struttura Eteroġenja tad-Dejta – L-elementi tad-Data jistgħu ma jkunux tal-istess tip ta' dejta (eż: Lista, Tuples, Settijiet eċċ...).

Qabel ma nifhmu l-funzjonalità tal-istruttura tad-dejta integrata ejjew naraw ftit funzjonijiet integrati li se jintużaw ma 'oġġetti tal-istruttura tad-dejta.

  • dir(obj) – funzjoni integrata li tirritorna l-attribut u l-metodi.
  • len(obj) – Irritorna t-tul (in-numru ta' oġġetti) ta' oġġett. L-argument jista’ jkun sekwenza (bħal string, bytes, tuple, lista, jew firxa) jew ġabra (bħal dizzjunarju, sett, jew sett iffriżat).
  • del – Din il-kelma prinċipali integrata tintuża biex tħassar oġġett minn spazju tal-isem jew tneħħi oġġetti minn oġġett bħal lista, dizzjunarju, eċċ.
  • type(obj) – Il-funzjoni type() jew tirritorna t-tip tal-oġġett jew tirritorna oġġett tat-tip ġdid ibbażat fuq l-argumenti mgħoddija.
  • id() – Din il-funzjoni tirritorna l-\identità ta' oġġett. Dan huwa numru sħiħ li huwa garantit li jkun uniku u kostanti għal dan l-oġġett matul il-ħajja tiegħu.

Issa kif rajt ftit dettalji importanti, ejjew inkomplu bl-istrutturi tad-dejta python.

Python jiġi bi strutturi tad-dejta integrati kif ukoll l-utenti jistgħu jiddefinixxu l-istrutturi tad-dejta tagħhom stess. L-istruttura tad-dejta integrata tinkludi LISTA, Dizzjunarju, TUPLE, u SETT. Uħud mill-eżempji għal strutturi tad-dejta definiti mill-utent huma STACK, QUEUES, TREE, HASHMAP, eċċ...

Nies li ġejjin minn lingwi ta' programmar oħra jkunu familjari ħafna ma' tip ta' firxa. Iżda fil-python, mhumiex daqshekk komuni.

Hawnhekk il-lista hija tip simili għal firxa iżda l-lista tippermettilna naħżnu valuri ta 'kwalunkwe tip ta' dejta (Eteroġenja) filwaqt li firxa se żżomm dejta ta 'tip partikolari biss (int, float eċċ...). Biex tuża array trid timporta l-array mill-modulu array b'mod espliċitu.

F'din is-serje ta 'artikoli Python, se nkunu qed inħarsu lejn x'inhi struttura tad-dejta u struttura tad-dejta integrata ta' python.

Lista hija struttura ta' dejta li hija ġabra ta' tipi ta' dejta differenti. Xi tfisser \ġbir ta' tipi ta' dejta differenti? Lista tista' taħżen kordi, Numeri interi, valuri ta' punt li jvarja, Lista imdaħħla u l-bqija.

L-oġġetti tal-lista huma \Mutabbli li jfisser li oġġetti maħluqa ġewwa l-lista jistgħu jiġu Aċċessati, modifikati jew imħassra. Indiċjar ta' appoġġ tal-lista. Kull oġġett fil-listi huwa assenjat għal indirizz u dak l-indirizz jista' jintuża biex jaċċessa jew jimmodifika l-valur tal-oġġett partikolari .

  • Oħloq lista
  • Daħħal/Aċċessa/Immodifika l-lista
  • Ħassar il-lista

Lista tista 'tinħoloq bl-użu ta' parentesi kwadri.

>>> 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]

Nistgħu nużaw il-funzjoni inerenti type() biex niċċekkjaw it-tip ta 'oġġett.

>>> type(name)

Nistgħu naċċessaw il-metodi u l-attributi tal-istanza tal-lista billi tuża l-funzjoni dir().

>>> 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']

Nistgħu nsibu n-numru totali ta 'oġġetti fil-lista billi tuża l-metodu len().

>>> len(name)

Nistgħu noħolqu lista ġdida minn lista eżistenti billi tuża l-metodu list.copy().

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

Nistgħu daħħal oġġett f'lista fi kwalunkwe pożizzjoni billi tuża l-metodu list.insert(i, x).

>>> 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.

Nistgħu nużaw il-metodu list.append(x) biex tehmeż oġġett wieħed fil-lista. Dan se daħħal l-oġġett fl-aħħar tal-lista.

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

Nistgħu nużaw il-metodu list.extend() biex inżidu oġġetti multipli mal-lista.

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

Nistgħu wkoll nużaw l-operatur + biex ngħaqqdu żewġ lista. Kemm il-lista tista 'tkun ta' tipi ta 'dejta differenti.

>>> 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']

Kif diġà ddikjarat listi oġġetti huma mutevoli. Oġġett tal-lista jista' jiġi modifikat billi ssir referenza għall-pożizzjoni tal-indiċi u jiġi assenjat valur għaliha.

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

Il-lista tappoġġja indiċjar kemm pożittiv kif ukoll negattiv.

Indiċjar jibda minn 0 u Indiċjar Negattiv jibda minn -1.

Nistgħu naċċessaw l-oġġett tal-lista billi tuża l-pożizzjoni tal-indiċi tagħhom.

>>> 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'

Nistgħu wkoll nużaw it-tqattigħ biex naċċessaw l-oġġetti fil-lista. It-tqattigħ jippermettilna naċċessaw firxa ta 'oġġetti billi tiddefinixxi l-bidu, it-tmiem, il-parametri tal-Pass.

# 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']

Nistgħu nsibu n-numru ta' okkorrenza għal valur partikolari billi tuża l-metodu list.count(x).

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

Nistgħu nsibu l-pożizzjoni ta 'l-Indiċi ta' oġġett partikolari billi tuża l-metodu list.index(x[, start[, end]]).

>>> 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

Nistgħu nużaw il-metodu list.reverse() biex ireġġgħu lura l-oġġetti fil-lista.

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

Nistgħu nużaw il-metodu list.pop(x) biex inneħħu oġġett minn lista fil-pożizzjoni x. Din il-funzjoni se tneħħi l-oġġett mil-lista u turi l-oġġett imneħħi. Jekk x mhix speċifikata allura l-metodu pop() jirritorna l-aħħar oġġett mil-lista.

>>> 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'

Nistgħu wkoll nużaw il-metodu list.remove (x) biex inneħħu l-oġġett mil-lista. Hawnhekk x jieħu l-valur tal-oġġett u jitfa ValueError jekk x ma jkunx fil-lista.

>>> 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

Nistgħu nagħmlu lista vojta billi jew nassenjaw l-isem tal-lista għal parentesi kwadri jew billi nużaw il-metodu list.clear().

>>> 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
[]

Minflok ma nużaw metodi ta 'lista biex nagħmlu l-lista vojta jew ineħħu oġġett mil-lista nistgħu nużaw mibnija fil-kelma prinċipali del biex inwettqu dawn l-azzjonijiet. Il-kelma prinċipali del tista' tħassar oġġett tal-lista mill-memorja jew tħassar oġġett minn lista jew tħassar oġġett minn porzjon.

>>> 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
[]

Mibnija fil-funzjoni id() tirritorna l-\identità ta' oġġett. Dan huwa numru sħiħ li huwa garantit li jkun uniku u kostanti għal dan l-oġġett matul il-ħajja tiegħu.

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

Nota: neħħejna l-varjabbli tal-lista mill-memorja billi tuża del(), u għalhekk tarmi żball fl-isem.

help() funtion:

Mibnija fl-għajnuna function() hija utli ħafna biex tikseb dettalji dwar oġġett partikolari jew metodi ta 'dak l-oġġett.

help(object)
help(object.method)

S'issa f'dan l-artikolu, rajna kif nistgħu nużaw struttura tad-dejta tal-lista biex naħżnu, taċċessaw, timmodifikaw, inħassru oġġetti tal-lista billi nużaw il-metodi tal-lista. Rajna wkoll xi funzjonijiet built-in bħal id(), dir(), type(), help() li huma funzjonijiet effettivi ħafna. Għandna wkoll komprensjoni tal-lista f'python li tipprovdi mod aktar konċiż u li jinqara kif tinħoloq lista.