Turinys

Sąrašai

Paprasčiausias sąrašas

sarashas = ['Linas', 'Valiukas', 18]
print sarashas	# ['Linas', 'Valiukas', 18]
print sarashas[0]	# "Linas"
print sarashas[0:2]	# ['Linas', 'Valiukas']
print len(sarashas)	# Sąrašo ilgis

Elementų pridėjimas

sarashas = sarashas + ['Vilnius']	# Pridedame vieną elementą
print sarashas*3	# Tris kartus
 
# Pridėti galima ir taip
sarashas.append ("Klaipėda")

Elementų masyvo pridėjimas

Prie vieno masyvo pridedame kitą:

dar_truputis_klasioku = [ "Egle", "Evelina", "Renata" ]
sarashas.extend (dar_truputis_klasioku)

Įdėjimas į konkrečią vietą

Pridedame į konkrečią, indeksu nurodytą vietą:

klasiokai.insert (1, "Arturas");

Elementų ištrynimas

sarashas[0:2] = []	# Ištriname du elementus
sarashas[0:1] = ['Jonas', 'Jonaitis']
print sarashas	# ['Jonas', 'Jonaitis', 'Vilnius']

remove()

Galima ir su remove():

klasiokai.remove ("Donata")
klasiokai.remove ("Goda")
klasiokai.remove ("Dovile")

pop()

Spausdiname pirmą klasioką masyve, kartu išimdami jį iš masyvo:

print klasiokai.pop (0) # "Arturas"

del

Triname antraji klasioka (Renata)

del klasiokai[1]

Triname pirmus du klasiokus (Toma ir Kristi)

del klasiokai[0:2]

Triname visus klasiokus

del klasiokai[:]

Triname klasioku masyva

del klasiokai

index()

Išsiaiškiname, kuriuo numeriu yra įrašyta Evelina:

print klasiokai.index ("Evelina") # 5

count()

Išsiaiškiname, kiek kartų į masyvą įvedėme Eleną:

print klasiokai.count ("Elena") # 1

sort() - rūšiavimas

Surūšiuojame klasiokų masyvą:

klasiokai.sort ()

reverse()

Apsukame klasiokų masyvą:

klasiokai.reverse ()

Tikrinimas su "in"

klasiokai = [ "Dovilė", "Donata", "Goda" ]
 
# Ar Donata vis dar klasiokė?
if ("Donata" in klasiokai):
    print "Klasiokė!"
if ("Linas" in ("Tomas", "Kristijonas", "Ernestas")):
    print "Aha"
else:
    print "Ne"

Gudrus sąrašo susitvarkymas

whitespace = [ " Linas ", " Laurynas ", " Kristis " ]
 
print [ vardas.strip () for vardas in whitespace ]
sarashas = range (11)
 
# Kiekvieną padauginame iš 3
print [ 3*x for x in sarashas ]
 
# Kiekvieną, kuris dalinasi iš 2, padauginame iš 6 (spausdinami tik padaugintieji)
print [ 6*x for x in sarashas if x % 2 == 0 ]
 
# Spausdiname kiekvieną elementą, padalintą iš 2 ir padaugintą iš 3
print [ [x/2, x*3] for x in sarashas ]
 
# Panašiai, tik kažkuo skiriasi :-)
print [ (x/2, x*3) for x in sarashas ]
 
# Spausdiname sąrašo elementų sandaugas
pirmas_sarashas = [ 2, 4, 6 ]
antras_sarashas = [ 3, 5, 7 ]
print [ x*y for x in pirmas_sarashas for y in antras_sarashas ]

filter(), map(), reduce()

filter()

def ar_pirminis (skaicius):
	"""Funkcija nustato, ar skaichius yra pirminis."""
 
	# Dalinasi ish 2?
	if (skaicius % 2 == 1):
		puse_skaiciaus = (skaicius - 1) / 2
	else:
		puse_skaiciaus = skaicius / 2
 
	pirminis = 1
 
	for x in range(1, puse_skaiciaus+1):
		if (skaicius % x == 0 and x != 1):
 
			pirminis = 0
			break
 
	return pirminis
 
 
# Spausdiname tik pirminius skaicius nuo 1 iki 49
print filter (ar_pirminis, range (50))

map()

def kubas (skaicius): return skaicius * skaicius * skaicius
 
# Spausdiname pirmu 11 skaichiu kubus
print map (kubas, range (1, 11));
 
 
def sudetis (pirmas, antras): return pirmas + antras
 
# Spausdiname [1..10] ir [21..30] sumas
print map (sudetis, range (1, 11), range (21, 31))

reduce()

def sudetis (pirmas, antras): return pirmas + antras

Skaičiuojame [1..10] skaitmenų sumą. reduce() funkcijai perduoda pirma ir antra elementa, tada - funkcijos rezultata ir trechia elementa, …

Trechiu reduce() parametru galima nurodyti, nuo kurio elemento pradeti (elemento reikshme)

print reduce (sudetis, range (1, 11))
# Ta pati darba atlieka ir sum()

Multidimensional

# Multidimensional ;-)
miestai = ['Vilnius', 'Kaunas', 'Klaipeda']
naujas = [0, miestai, 1]
print naujas	# [0, ['Vilnius', 'Kaunas', 'Klaipeda'], 1]