Python list, dictionary, tuple, setについての整理(2021.1.29追記あり)

Python

分かった気になるけれど、すぐ忘れがちなので現時点の理解をまとめた備忘録。

空データを作る

# list
>>> elist = []
>>> elist
[]


# dictionary
>>> edict = {}
>>> edict
{}


# tuple
>>> etuple = ()
>>> etuple
()


# set
>>> eset = set()
>>> eset
set()

setの時にはset関数set()を使用する必要がある。

>>> elist.append(1)
>>> elist.append(2)
>>> elist.append(1)
>>> elist
[1, 2, 1]
>>> set(elist)
{1, 2}

の様にlistをsetに変換した時など{1, 2}と出力されるので思わずeset = {}とやりたくなるが、{}は空dictionaryを作成する行為。

要素を追加する

listはappend()でlistの最後に要素を追加。

dictionaryはkey=valueの形式でデータを追加。

tupleはimutableなので要素追加は出来ない。
追加では無く、新たに要素を追加した同じ名前のtuple型データを作る事で同様の事が出来る。

setにはappend()が無いので、代わりにadd()を使用する。

# list
>>> elist.append(3)
>>> elist
[1, 2, 3]


# dictionary
>>> edict["a"] = 1
>>> edict["b"] = 2
>>> edict["c"] = 3
>>> edict["d"] = 4
>>> edict
{'a': 1, 'b': 2, 'c': 3, 'd': 4}


# tuple
>>> etuple = (1, 2)
>>> etuple
(1, 2)


# set
>>> eset.add(1)
>>> eset.add(2)
>>> eset.add(3)
>>> eset
{1, 2, 3}

要素を削除する

listはpop(), clear()を覚えておきたい。
pop()でlistの最後の要素を取り出して削除。
pop(0)の様に場所を指定するとその要素を取り出してリストから削除。
clear()で全要素を削除して空にする。

dictionaryはdel[], pop[], popitem(), clear()を覚えておきたい。
del[]で指定したkeyの要素を削除。
pop[]で指定したkeyの要素を取り出して削除。
popitem()は最後に追加した要素を取り出して削除。
clear()は全て削除して空にする。

tupleはimutableなので、要素の削除は出来ない。
同名で不要な要素を削除したtuple型データを作る事で代用出来る。

setはremove(), pop(), clear()を覚えておきたい。
remove()で指定の要素を削除、無いとエラー
pop()でランダムに一つ要素を取り出して削除。要素が無いとエラー。
clear()で全要素を削除して空にする。

# list
>>> elist
[1, 2, 3]
>>> elist.pop()
3
>>> elist
[1, 2]
>>> elist.pop(0)
1
>>> elist
[2]
>>> elist.clear()
>>> elist
[]


# dictionary
>>> edict
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> del(edict['b'])
>>> edict
{'a': 1, 'c': 3, 'd': 4}
>>> edict.pop('c')
3
>>> edict
{'a': 1, 'd': 4}
>>> edict.popitem()
('d', 4)
>>> edict
{'a': 1}
>>> edict.clear()
>>> edict
{}


# tuple
>>> etuple
(1, 2)
>>> etuple = (1)
>>> etuple
1


# set:
>>> eset
{1, 2, 3}
>>> eset.remove(3)
>>> eset
{1, 2}
>>> eset.pop()
1
>>> eset
{2}
>>> eset.pop()
2
>>> eset
{}
>>> eset = set([1, 2, 3])
>>> eset
{1, 2, 3}
>>> eset.clear()
>>> eset
set()

その他

変数に数字をカンマ “,” 区切りで代入すると、()が無くてもtuple型になる。

>>> tp = 1, 2, 3, 4, 4
>>> tp
(1, 2, 3, 4, 4)

dictionary型をfor loop文で出力する場合、in の後にdictionary型データそのものを指定しても、dictionary型データ.keys()としても出てくる結果は同じ。まずはkeyがあると言う理解。
valueを出したい場合には、データ.values()を使用する。(2021.1.29追記)

>>> edict
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> for i in edict:
...     print(i)
... 
a
b
c
d

>>> for i in edict.keys():
...     print(i)
... 
a
b
c
d

>>> for i in edict.values():
...     print(i)
... 
1
2
3
4

コメント

タイトルとURLをコピーしました