Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Joskus

...

ohjelmassa

...

saatetaan

...

tarvitaan

...

kokoelmaa,

...

joka

...

sisältää

...

alkioita

...

jonkin

...

yksinkertaisen

...

kaavan

...

mukaan

...

(esim.

...

kokonaislukujen

...

neliöitä).

...

Tällöin

...

voitaisiin

...

alustaa

...

muuttuja

...

tyhjällä

...

kokoelmalla

...

ja

...

käyttää

...

toistorakennetta,

...

joka

...

syöttää

...

kokoelmaan

...

arvoja.

...

Tässä

...

esimerkki,

...

jossa

...

tehdään

...

lista

...

kokonaislukujen

...

1

...

-

...

10

...

neliöistä.

{
Code Block
}
>>> L = []
>>> for i in range(1, 11):
	L.append(i * i)

	
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> 
{code}

Tähän

...

on

...

kumminkin

...

Pythonissa

...

kätevämpi

...

keino

...

list

...

comprehension

...

-

...

jolle

...

en

...

löytänyt

...

suomenkielistä

...

nimeä.

...

Se

...

on

...

lauseke,

...

jossa

...

on

...

ikäänkuin

...

for

...

toistorakenne

...

kokoelman

...

sisässä;

...

aluksi

...

listan

...

sisään

...

tulee

...

jokin

...

ilmaisu,

...

jossa

...

käytetään

...

jotain

...

muuttujaa

...

ja

...

sen

...

jälkeen

...

for

...

toistorakenteen

...

ylimmäisin

...

osa

...

ilman

...

kaksoispistettä.

...

Näin

...

synnytetään

...

for

...

toistorakenteen

...

mukaiset

...

arvot,

...

käytetään

...

niitä

...

halutussa

...

lausekkeessa

...

ja

...

sijoitetaan

...

listan

...

alkoiksi.

...

Tässä

...

aiempi

...

esimerkki

...

käyttäen

...

list

...

comprehensonia.

{
Code Block
}
>>> L = [i * i for i in range(1, 11)]
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>>
{code}

List

...

comprehesnsionissa

...

voi

...

myös

...

käyttää

...

useita

...

for

...

rakenteita

...

peräkkäin,

...

jolloin

...

ne

...

toimivat

...

ikäänkuin

...

sisäkkäiset

...

for

...

toistorakenteet.

...

Tässä

...

tehdään

...

kaikki

...

kertotaulun

...

luvuilla

...

1

...

-

...

5

...

tulokset.

{
Code Block
}
>>> [i * j for i in range(1, 5) for j in range(1, 5)]
[1, 2, 3, 4, 2, 4, 6, 8, 3, 6, 9, 12, 4, 8, 12, 16]
>>>
{code}

Nimestään

...

huolimatta

...

tämä

...

tekniikka

...

toimii

...

myös

...

joukoille

...

ja

...

hakurakenteille.

...

Niissä

...

täytyy

...

vain

...

käyttää

...

vastaavasti

...

aalto

...

sulkuja

...

ja

...

hakurakenteessa

...

erottaa

...

avain

...

ja

...

arvo

...

kaksoispisteellä.

...

Tässä

...

niistä

...

esimerkki.

{
Code Block
}
>>> {i ** 3  for i in range(1, 10)}
{64, 1, 8, 512, 343, 216, 729, 27, 125}
>>>
>>> D = {i : i ** 3  for i in range(1, 10)}
>>> D[3]
27
>>> D[7]
343
>>> D
{1: 1, 2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729}
>>> 
{code}

Tässä

...

voi

...

myös

...

käyttää

...

ehtoa

...

avainsanan

...

if

...

avulla;

...

jos

...

avainsanan

...

if

...

jälkeinen

...

totuusarvo

...

on

...

tosi,

...

alkio

...

lisätään

...

kokoelmaan,

...

muuten

...

ei.

...

Ehtoja

...

voi

...

olla

...

peräkkäin

...

useampikin.

...

Tässä

...

taas

...

tehdään

...

kokonaislukujen

...

neliöistä,

...

mutta

...

valitaan

...

vain

...

parittomat

...

luvut.

{
Code Block
}
>>> [i * i for i in range(1, 10) if i % 2]
[1, 9, 25, 49, 81]
>>>
{code}