読者です 読者をやめる 読者になる 読者になる

Pythonいろいろメモ

1.文字列を配列にするにはlist()を使用する

input = 'abcdef'
array = list(input)
print(array)

→[‘a’,‘b’,‘c’,’d',‘e’,‘f’]

2.条件分岐

a = 10

if a == 10:
    print('10!')
elif a < 10:
    print('under 10!')
else :
    print('over 10!')

こんな感じ。 Javaではelse if だったので、混乱したからメモ。

3.zip()

複数シーケンスを並列に反復処理する。

    days = ['monday','tuesday','wednesday']
    fruits = ['banana', 'orange', 'peach']
    drinks = ['coffee', 'tea', 'beer']
    desserts = ['tiramisu', 'ice cream', 'pie', 'pudding']

    for day , fruit, drink, dessert in zip(days,fruits,drinks,desserts):
        print(day, fruit, drink, dessert)

4.range()

指定した範囲の数値ストリームを生成する

    print(list(range(0,3)))
    #[0, 1, 2]

    print(list(range(0, 11, 2)))
    #[0, 2, 4, 6, 8, 10]

使い方は、range(start, end , step)とすることで、 startからstepごとにend-1の数までの数値ストリームができる。

5.内包表記

以前のブログで 少しだけ話題に挙げた内包表記をもう一度。 とりあえず書く。

number_list = [number for number in range(1,6)]

[1, 2 ,3 ,4 ,5]となる。

使い方は[expression for item in iterable] 一つ目のnumber変数はリストに入れる値を作るために必要。 2つ目のnumber変数はforループの一部。 最初のnumberはである。 以下のように書き直すとその性質がわかりやすい。

number_list = [number - 1 for number in range(1,6)]

結果は[0, 1, 2, 3, 4]となる。

んじゃ次に、内包表記に条件式を追加したものを。

a_list = [number for number in range(1,6) if number % 2 == 1]

結果は[1, 3, 5]になる。 if以降が条件式になっており、その条件に合致するものだけがリスト化対象になる。

次は、内包表記中にfor節を複数記述する形。

    rows = range(1,4)
    cols = range(1,3)
    cells = [(row, col) for row in rows for col in cols]
    for cell in cells:
        print(cell)

結果

(1, 1)
(1, 2)
(2, 1)
(2, 2)
(3, 1)
(3, 2)

つまり2重ループですな。

入門 Python 3

入門 Python 3