[Python] 配列操作

末尾に一つ追加 append

items = [
  { id:1,"name":"a"},
  { id:2,"name":"b"},
]
item = {id:3,"name":"c"}

items.append(item)
print(items)

> [{<built-in function id>: 1, 'name': 'a'}, {<built-in function id>: 2, 'name': 'b'}, {<built-in function id>: 3, 'name': 'c'}]

 

結合 extend

items1 = [
  { id: 1, "name": "a"},
  { id: 2, "name": "b"},
]
items2 = [
  { id: 3, "name": "c"},
]

# 結合前
print(items1)
> [{<built-in function id>: 1, 'name': 'a'}, {<built-in function id>: 2, 'name': 'b'}]

# プラスで結合
print(items1+items2)
> [{<built-in function id>: 1, 'name': 'a'}, {<built-in function id>: 2, 'name': 'b'}, {<built-in function id>: 3, 'name': 'c'}]

# extendで結合
# プラスで結合した時と同じ結果になるが、こちらはitems1に結合された値が入る。
items1.extend(items2)
print(items1)
> [{<built-in function id>: 1, 'name': 'a'}, {<built-in function id>: 2, 'name': 'b'}, {<built-in function id>: 3, 'name': 'c'}]

 

内包表記

JavaScriptでmapを使っているような感じで。

items = [
  { id: 1, "name": "a"},
  { id: 2, "name": "b"},
  { id: 3, "name": "c"},
]
print(items)
> [{<built-in function id>: 1, 'name': 'a'}, {<built-in function id>: 2, 'name': 'b'}, {<built-in function id>: 3, 'name': 'c'}]

print([item[id] for item in items])
> [1, 2, 3]

print([item[id] for item in items if item[id]%2==1])
> [1, 3]