Python コーディング(豆) list編

pythonのlist操作に関する豆達です。


enumerate: index付きforループ

a = ['I', 'like', 'cats']
for i, word in enumerate(a):
    print(i, word)
> 0 I
> 1 like
> 2 cats


index: listにおける指定した要素のindexを取得

a = [1, 2, 3]
a.index(2)
> 1
#要素が複数ある場合は最もindexが小さいものを出力


remove: listの中の指定した要素を取り除く

a = [1, 1, 2, 3]
a.remove(1)
a
> [1, 2, 3]
#要素が複数ある場合は最もindexが小さいものを取り除く

#1を完全に取り除きたい時は
list(set(a)-set({1}))
とすればよい
# 注) [i for i in a if i != 1] としても良いが、listの長さが十分大きい場合は上記のやり方の方が高速



count: listの要素をカウントする

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


join: listの要素を結合する

a = ['d', 'o', 'g']  
''.join(a)  
> 'dog'

'y'.join(a)
> 'dyoyg'


a[::-1]: 逆順

a = [1, 2, 3]  
for i in a[::-1]: 
    print(i)  
> 3
> 2 
> 1


リストの比較(不等号)

a = [1, 0, 0]
b = [0, 1, 0]
c = [0, 0, 1]
a > b
> True
c > b
> False

#まずa[0]とb[0]を比較する. a[0] > b[0] または a[0] < b[0] ならば
#その結果を出力. a[0] == b[0] ならば a[1]とb[1]を比較して...と進んで行く
(タプル等でも比較可能)


all: 全ての要素が真ならばTrueを返す
all(iterable)

a = [1, 1, 1]
b = [1, 0, 1]
all(a)
> True
all(b)
> False


any: 要素のいずれかが真ならばTrueを返す
any(iterable)

a = [0, 0, 0]
b = [0, 0, 1]
any(a)
> True
any(b)
> False


appendとpopをいっぺんに

a = [1, 2, 3]
a.append(a.pop(1))
> a = [1, 3, 2]