LoginSignup
0
0

More than 1 year has passed since last update.

python初学者の備忘録 コレクションについて

Last updated at Posted at 2021-09-24

←目次へ

python,Qiita初心者なので、備忘録として記載していきます。 なにせ初心者なので、知識不足はご理解ください。 知識を深めながら追記していきたいと思います。

コレクションとは

  • 複数のデータを格納することから「コレクション」「コンテナ」などと呼ぶこともある
  • また、そのうち「リスト」と「タプル」はシーケンス型オブジェクトとも呼ぶこともある ※「range」「文字列」もそれにあたる

オブジェクト生成後に要素を変更できる:mutableオブジェクト

オブジェクト生成後に要素を変更できない:immutableオブジェクト

生存期間中変わらないハッシュ値を持つ:hashableオブジェクト

各コレクションの違い
データ型 変更可否 要素の順序 インデックス 説明
リスト 任意の型のデータを格納できる
タプル × 任意の型のデータを格納できる
辞書 × × キーと値の組で表されるデータを格納する
集合 × × 重複の無いリストを格納する
集合(frozenset型) × × × 重複の無いリストを格納する

リスト型
タプル型
辞書型(連想配列)
集合型
集合型(frozenset型)

同じ要素数のシーケンスの比較演算
  • タプルやリストなどのシーケンスオブジェクトは比較演算できる

シーケンス同士の比較は、先頭の要素から順番に同じインデックス同士の値を比較して、先に小さい値となったシーケンスが小さい値となる

# -- リストの場合 --
list1 = ['a', 'b', 'c']
list2 = ['a', 'b', 'd']
print(list1 <= list2)
True

list3 = ['a', 'b', 'c']
list4 = ['a', 'b', 'b']
print(list3 <= list4)
False

# -- タプルの場合 --
value1 = (1, 2, 3, 4)
value2 = (1, 2, 3, 5)
print(value1 < value2)
True

value3 = (1, 2, 3, 4)
value4 = (1, 2, 3, 3)
print(value3 < value4)
False

dic1 = {'a': 0, 'b': 1}
dic2 = {'b': 1, 'a': 0}
print(dic1 == dic2)
True # 全てのキーと値が等しいので別オブジェクトだがTrue

# -- 集合の場合 --
set1 = {"A", "B", "C"}
set2 = {"B", "C", "A"}
print(set1 == set2)
True # set1の要素がset2にすべて含まれており、set2の要素がset1にすべて含まれているのでTrue
異なる要素数のシーケンスの比較演算

比較するシーケンス同士の長さが異なる場合、短いシーケンスの要素と長いシーケンスの要素を比較してすべて等しければ、短い要素のほうが小さい値となる

# -- リストの場合 --
>>> list1 = ['a', 'b', ]
>>> list2 = ['a', 'b', 'C']
>>> print(list1 <= list2)
True

# -- タプルの場合 --
value1 = (1, 2, 3)
value2 = (1, 2, 3, 4)
print(value1 < value2)
True
異なるコレクションの比較演算はできない
list1 = [1, 2, 3]
value2 = (1, 2, 3)
print(list1 <= value2)
# TypeError: '<=' not supported between instances of 'list' and 'tuple'
# 型が違うためエラーになる
  • 辞書型や集合型は比較演算できない
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0