Pythonを使ってショートコーディング(コードゴルフ)を行うときのテクニックまとめ
AtCoderでのみ確認
自分のメモの為わかりにくいものがあります
最善がほかにあるかもしれません
入力
入力
,*a=map(int,open(0)) # 各行1つのみの場合
n,*a=map(int,open(0).read().split()) # 上ではない場合
(h,w),*e=[[*map(int,t.split()]for t in open(0)] # 各行個別にしたい場合
出力
出力
print("YNoes"[f(x)::2])
print("NYoe s"[f(x)::2]) # AtCoderのみ
print(f(x)and"Alice"or"Bob")
print("Alice"*f(x)or"Bob")
print(*S,sep="")
exit(print(10))
数値演算
例
-~n = n + 1
~-n = n - 1
-(-x//y) = (x+y-1)//y = math.ceil(x/y)
.99 # 0.99
1e7 # 10 ** 7
List関係
list
A=[]
A+=5, # A.append(5)
A+=[3,7]
[*eval("[],"*n)] # [[] for _ in range(n)]
その他
F=lambda x:x*2 # def F(x):return x*2
for a in range(h*w):i,j=a//w,a%w
for _ in[0]*n: # for _ in range(n)