Skip to content

Instantly share code, notes, and snippets.

@ichiren1
Last active February 14, 2017 06:58
Show Gist options
  • Select an option

  • Save ichiren1/b82a44525b2247f69b7cf9a4859df76a to your computer and use it in GitHub Desktop.

Select an option

Save ichiren1/b82a44525b2247f69b7cf9a4859df76a to your computer and use it in GitHub Desktop.
python内包記法個人的まとめ

1次配列

a = []
for i in range(10):
  a.append(i)

内包

a = [i for i in range(i)]

2次配列

a = []
for i in range(3):
  b = []
  for j in range(4):
    b.append(j)
  a.append(b)

内包

a = [[j for j in range(4)] for i in range(3)]

辞書

a = {}
for i in range(10):
  a[str(i)] = i

内包

a = {str(i): i for i in range(10)}

ネストした辞書

a = {}
for i in range(3):
  b = {}
  for j in range(4):
    b[str(i)] = j
  a[str(i)] = b

内包

{str(i):{str(j):j for j in range(4)} for i in range(3) }

後置if

a = []
for i in range(10):
  if i % 2 == 0:
    a.append(i)

内包

[i for i in range(10) if i%2 == 0]

if-else

a = []
for i in range(10):
  if i%2 == 0:
    a.append("even")
  else:
    a.append("odd")

内包

["even" if i%2 == 0 else "odd" for i in range(10)]

辞書内包

dict((str(i),"even") if i%2==0 else (str(i),"odd") for i in range(10))

辞書の配列を作る

[{"number": n} for n in range(10)]

留意点

  • python2ではmap, filterはリストを返す
  • python3ではmap, filterはイテレータを返す

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment