<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.pitonas.lt/index.php?action=history&amp;feed=atom&amp;title=Pamokos%2FPy%2FS%C4%85ra%C5%A1%C5%B3_demonstracija</id>
	<title>Pamokos/Py/Sąrašų demonstracija - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pitonas.lt/index.php?action=history&amp;feed=atom&amp;title=Pamokos%2FPy%2FS%C4%85ra%C5%A1%C5%B3_demonstracija"/>
	<link rel="alternate" type="text/html" href="https://wiki.pitonas.lt/index.php?title=Pamokos/Py/S%C4%85ra%C5%A1%C5%B3_demonstracija&amp;action=history"/>
	<updated>2026-10-07T02:44:44Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.pitonas.lt/index.php?title=Pamokos/Py/S%C4%85ra%C5%A1%C5%B3_demonstracija&amp;diff=163&amp;oldid=prev</id>
		<title>Eimutis: sukurta</title>
		<link rel="alternate" type="text/html" href="https://wiki.pitonas.lt/index.php?title=Pamokos/Py/S%C4%85ra%C5%A1%C5%B3_demonstracija&amp;diff=163&amp;oldid=prev"/>
		<updated>2023-02-06T09:18:54Z</updated>

		<summary type="html">&lt;p&gt;sukurta&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Pilnas šios treniruotės Python kodas yra [https://www.jdoodle.com/a/3Ppw čia]. Tai yra trumpas įvadas, skirtas tiems kas jau žino Pascal ar C++ kalbų masyvus ar yra bandę Vėžliuko grafiką ir nori greitai įgauti supratimą apie darbą su Python sąrašais.&lt;br /&gt;
===Sąrašai yra indeksuojami===&lt;br /&gt;
Sąrašų sąvoka yra glaudžiai susijusi su masyvais, kur prieiga prie atskirų elementų atliekama indeksų pagalba, ką demonstruoja pirmoji šios temos funkcija. Sąrašas gali būti užrašomas tiesiogiai programoje, elementus išvardijant tarp laužtinių skliaustų. Pažvelkite į šį pavyzdį:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
skaičiai = [11, 8, 10, 6]&lt;br /&gt;
# indeksai   0  1   2  3  -&amp;gt; len=4&lt;br /&gt;
komandos = [&amp;quot;Žalgiris&amp;quot;, &amp;quot;Galiūnas&amp;quot;, &amp;quot;Atletas&amp;quot;, &amp;quot;Vilkai&amp;quot;, &amp;quot;Neptūnas&amp;quot;]&lt;br /&gt;
# indeksai      0           1           2         3         4       -&amp;gt; len=5&lt;br /&gt;
&lt;br /&gt;
def demo_indeksai(sąr):&lt;br /&gt;
    print(&amp;quot;Duota-&amp;gt;&amp;quot;, sąr, &amp;quot;ilgis=&amp;quot;, len(sąr))&lt;br /&gt;
    print(sąr[0], sąr[1], sąr[2])    # pradžia&lt;br /&gt;
    print(sąr[-1], sąr[-2], sąr[-3]) # pabaiga - atvirkščiai&lt;br /&gt;
#=== def end &lt;br /&gt;
demo_indeksai(skaičiai)&lt;br /&gt;
demo_indeksai(komandos)&lt;br /&gt;
demo_indeksai([10, 11, 12, 13, 14, 15, 16])&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot; Gaunami rezultatai&lt;br /&gt;
Duota-&amp;gt; [11, 8, 10, 6] ilgis= 4&lt;br /&gt;
11 8 10&lt;br /&gt;
6 10 8&lt;br /&gt;
Duota-&amp;gt; [&amp;#039;Žalgiris&amp;#039;, &amp;#039;Galiūnas&amp;#039;, &amp;#039;Atletas&amp;#039;, &amp;#039;Vilkai&amp;#039;, &amp;#039;Neptūnas&amp;#039;] ilgis= 5&lt;br /&gt;
Žalgiris Galiūnas Atletas&lt;br /&gt;
Neptūnas Vilkai Atletas&lt;br /&gt;
Duota-&amp;gt; [10, 11, 12, 13, 14, 15, 16] ilgis= 7&lt;br /&gt;
10 11 12&lt;br /&gt;
16 15 14&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Demonstracinė funkcija rodo šias savybes:&lt;br /&gt;
*sąrašą galima spausdinti tiesiogiai kaip vientisą objektą;&lt;br /&gt;
*parodo kaip pasiekiami pirmieji trys elementai.&lt;br /&gt;
*parodo kad panaudojant neigiamus indeksus patogu nagrinėti sąrašo pabaigą, tai yra naujovė, lyginant su C++ šeimos kalbomis.&lt;br /&gt;
&lt;br /&gt;
===Sąrašams skirtos funkcijos===&lt;br /&gt;
Atliekant sąrašo kaip objekto analizę būtina žinoti, kad jo aktualus dydis nustatomas funkcijos &amp;#039;&amp;#039;&amp;#039;len(sąr)&amp;#039;&amp;#039;&amp;#039; pagalba, todėl parametruose nereikia papildomai nurodyti sąrašo dydžio.&lt;br /&gt;
Funkcija &amp;#039;&amp;#039;&amp;#039;sum(sąr)&amp;#039;&amp;#039;&amp;#039; grąžina visų sąraše esančių skaičių sumą. Jei sąraše pasitaiko teksto eilučių, signalizuojama apie klaidą. Todėl jei sąrašo elementai prieš sumavimą yra nežinomo tipo, reikia patikrinti ar jie yra &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; tipo. Matome ir kitas naudingas funkcijas, skirtas mažiausių ir didžiausių reikšmių radimui, rikiavimui.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def demo_funkcijos(sąr):&lt;br /&gt;
    print(&amp;quot;visas sąrašas:&amp;quot;, sąr)&lt;br /&gt;
    print(&amp;quot;sąrašo ilgis: &amp;quot;, len(sąr))&lt;br /&gt;
    if isinstance(sąr[0], int):  # sumuoti galima tik skaičius&lt;br /&gt;
        print(&amp;quot;sąrašo suma:  &amp;quot;, sum(sąr))&lt;br /&gt;
    print(&amp;quot;sąrašo min:   &amp;quot;, min(sąr))&lt;br /&gt;
    print(&amp;quot;sąrašo max:   &amp;quot;, max(sąr))&lt;br /&gt;
    print(&amp;quot;Rikiuotas sąr:&amp;quot;, sorted(sąr))&lt;br /&gt;
    print(&amp;quot;Galutinis sąr:&amp;quot;, sąr, &amp;quot;\n---------&amp;quot;)&lt;br /&gt;
demo_funkcijos(skaičiai)&lt;br /&gt;
demo_funkcijos(komandos)&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot; Gaunami rezultatai:&lt;br /&gt;
visas sąrašas: [11, 8, 10, 6]&lt;br /&gt;
sąrašo ilgis:  4&lt;br /&gt;
sąrašo suma:   35&lt;br /&gt;
sąrašo min:    6&lt;br /&gt;
sąrašo max:    11&lt;br /&gt;
Rikiuotas sąr: [6, 8, 10, 11]&lt;br /&gt;
Galutinis sąr: [11, 8, 10, 6] &lt;br /&gt;
---------&lt;br /&gt;
visas sąrašas: [&amp;#039;Žalgiris&amp;#039;, &amp;#039;Galiūnas&amp;#039;, &amp;#039;Atletas&amp;#039;, &amp;#039;Vilkai&amp;#039;, &amp;#039;Neptūnas&amp;#039;]&lt;br /&gt;
sąrašo ilgis:  5&lt;br /&gt;
sąrašo min:    Atletas&lt;br /&gt;
sąrašo max:    Žalgiris&lt;br /&gt;
Rikiuotas sąr: [&amp;#039;Atletas&amp;#039;, &amp;#039;Galiūnas&amp;#039;, &amp;#039;Neptūnas&amp;#039;, &amp;#039;Vilkai&amp;#039;, &amp;#039;Žalgiris&amp;#039;]&lt;br /&gt;
Galutinis sąr: [&amp;#039;Žalgiris&amp;#039;, &amp;#039;Galiūnas&amp;#039;, &amp;#039;Atletas&amp;#039;, &amp;#039;Vilkai&amp;#039;, &amp;#039;Neptūnas&amp;#039;] &lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sąrašo analizė su indeksais===&lt;br /&gt;
Analizuojant sąrašus galima naudoti klasikinius ciklus su indeksais, panašiai kaip senosios C kalbos atveju. &amp;lt;br&amp;gt;Naudojant &amp;#039;&amp;#039;&amp;#039;for i in range(len(sąr)):&amp;#039;&amp;#039;&amp;#039; gausime iteraciją per visus galimus sąrašo indeksus.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def su_indeksais_suma(sąr):&lt;br /&gt;
    print(&amp;quot;Pradinis:&amp;quot;, sąr)&lt;br /&gt;
    suma = 0                  # kaupiama suma&lt;br /&gt;
    for i in range(len(sąr)):&lt;br /&gt;
        suma += sąr[i]        # pridedame eilinį narį&lt;br /&gt;
        print(&amp;quot;sąr[&amp;quot;+str(i)+&amp;quot;]=&amp;quot;, sąr[i], &amp;quot;\t∑=&amp;quot;, suma)&lt;br /&gt;
    print(&amp;quot;Galutinė suma=&amp;quot;, suma)&lt;br /&gt;
su_indeksais_suma(skaičiai)&lt;br /&gt;
skaičiai.append(7)&lt;br /&gt;
su_indeksais_suma(skaičiai)&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot; Gaunami rezultatai:&lt;br /&gt;
Pradinis: [11, 8, 10, 6]&lt;br /&gt;
sąr[0]= 11 	∑= 11&lt;br /&gt;
sąr[1]= 8 	∑= 19&lt;br /&gt;
sąr[2]= 10 	∑= 29&lt;br /&gt;
sąr[3]= 6 	∑= 35&lt;br /&gt;
Galutinė suma= 35&lt;br /&gt;
Pradinis: [11, 8, 10, 6, 7]&lt;br /&gt;
sąr[0]= 11 	∑= 11&lt;br /&gt;
sąr[1]= 8 	∑= 19&lt;br /&gt;
sąr[2]= 10 	∑= 29&lt;br /&gt;
sąr[3]= 6 	∑= 35&lt;br /&gt;
sąr[4]= 7 	∑= 42&lt;br /&gt;
Galutinė suma= 42&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kita sąrašo ypatybė yra ta, kad sąrašą galima eigoje papildyti naudojant funkciją &amp;#039;&amp;#039;&amp;#039;sąr.append(sk)&amp;#039;&amp;#039;&amp;#039;, kas yra svarbu dinamiškai formuojant sąrašus.&lt;br /&gt;
Jei užduotyje yra nagrinėjami sąrašo elementų tarpusavio santykiai (pvz. važiuojama į kalną ar leidžiamasi), tai tokiu atveju geriau naudoti indeksus, kas ir parodyta demo pokyčių skaičiavimo funkcijoje.&lt;br /&gt;
&lt;br /&gt;
===Sąrašo analizė be indeksų===&lt;br /&gt;
Pilnai sąrašo analizei galimi ciklai panaudojant indeksus ir be jų. Ciklas &amp;#039;&amp;#039;&amp;#039;for sk in sąr:&amp;#039;&amp;#039;&amp;#039; dažnai yra skaitomas taip “kiekvienam sk iš sąr” (anglų kalba &amp;#039;&amp;#039;&amp;#039;for each&amp;#039;&amp;#039;&amp;#039;). Panagrinėjus šiuos du atvejus detaliau matyti, kad &amp;#039;&amp;#039;atvejis be indeksų yra paprastesnis, mažiau galimybių suklysti&amp;#039;&amp;#039;, todėl ir yra rekomenduojamas naudoti ten, kur indeksai nebūtini.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def be_indeksų_suma(sąr):&lt;br /&gt;
    suma = 0&lt;br /&gt;
    for sk in sąr:&lt;br /&gt;
        suma += sk&lt;br /&gt;
        print(sk, &amp;quot;\t∑=&amp;quot;, suma)&lt;br /&gt;
    print(&amp;quot;Galutinė suma=&amp;quot;, suma)&lt;br /&gt;
be_indeksų_suma(skaičiai)&lt;br /&gt;
skaičiai.append(7)&lt;br /&gt;
be_indeksų_suma(skaičiai)&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot; Rezultatai tokie patys kaip ir su indeksais &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Savarankiškas darbas===&lt;br /&gt;
Žinių apie sąrašus įtvirtinimui pateikiama paprasta užduotis:&amp;lt;br&amp;gt;&lt;br /&gt;
DUOTA: krepšinio komandos žaidėjų pelnytų taškų sąrašas&amp;lt;br&amp;gt;&lt;br /&gt;
taškai = [8, 2, 11, 15, 5, 0, 21, 12, 1]&amp;lt;br&amp;gt;&lt;br /&gt;
*parašykite funkciją, kuri pagal surinktus krepšinio rungtynių taškus rastų&lt;br /&gt;
*kiek yra silpnų, vidutinių ir gerų žaidėjų:&lt;br /&gt;
*silpni &amp;lt; 5 tšk, vidutiniai &amp;lt; 12, geri &amp;gt;= 12&lt;br /&gt;
{{navigation |previous=BEGINNING |next=END}}&lt;/div&gt;</summary>
		<author><name>Eimutis</name></author>
	</entry>
</feed>