プログラミングに慣れている人はCかC++などの考え方で書いていると思いますけど、pythonの可読性を発揮するには、書き方を覚えましょう。

多変数の宣言

#普通の記法
a=1
b=0
c=2
#pythonicな記法
a,b,c=1,0,2

変数の値交換

#普通の記法
a=1
b=2
c=a
a=b
b=c
print(a,b)
#結果
2 1
#pythonicな記法
a=1
b=2
a,b=b,a
print(a,b)
#結果
2 1

単純の条件式

#普通の記法
if x==1:y=x
else: y=-x
#pythonicな記法
y= x if x==1 else -x

空判定条件式

#普通の記法
a=[1,2]
if a!=[]:print(a)
#pythonicな記法
a=[1,2]
if a:print(a)

範囲付き条件式

#普通の記法
if x>1 and x<2: print(x)
#pythonicな記法
if 2>x>1 : print(x)

複数の条件付き条件式(OR)

#普通の記法
if x>1 or y>1 or z>1:print(x+y+z)
#pythonicな記法
if any([x>1,y>1,z>1]):print(x+y+z)

複数の条件付き条件式(AND)

#普通の記法
if x>1 and y>1 and z>1:print(x+y+z)
#pythonicな記法
if all([x>1,y>1,z>1]):print(x+y+z)

リストを全探索

#普通の記法
a=["a","b","c"]
for i in range(len(a)):print(i,a[i])
#結果
0 a
1 b
2 c
#pythonicな記法
a=["a","b","c"]
for i,name in enumerate(a):print(i,name)
#結果
0 a
1 b
2 c

for文でリスト作成

#普通の記法
a=[]
for i in range(10): 
    a.append(i*i)
#pythonicな記法
a=[x*x for x in range(10)]

zip関数

#普通の記法
a=["a","aa"]
b=["b","bb"]
for i in range(len(a)):
    print(a[i],b[i])
#pythonicな記法
a=["a","aa"]
b=["b","bb"]
for i,j in zip(a,b):
    print(i,j)

まとめ

まだたくさんありますけど、とりあえず今回はシンプルのものを書きました。

(著:Hu

関連記事