Python勉強会
<第3回Web会議日程>
2024年01月17日(水) 19:00から
<第3回の自習範囲>
【Pythonチュートリアル】
https://docs.python.org/ja/3/tutorial/index.html
【スッキリわかるPython入門】
第2章 コレクション
種類 | 括り文字と要素 | ポイント |
---|---|---|
リスト | [ 値1 , 値2 , ⋯ ] | ・異なるデータ型の要素を格納可能 ・長さ(要素数)が可変 ・要素の書き換え可 ・インデックス(番号)で要素にアクセス |
タプル | ( 値1 , 値2 , ⋯ ) | ・異なるデータ型の要素を格納可能 ・要素の書き換え不可 ・インデックス(番号)で要素にアクセス |
辞書 | { キー1 : 値1 , キー2 : 値2 , ⋯ } | ・異なるデータ型の要素を格納可能 ・長さ(要素数)が可変 ・要素の書き換え可 ・キーで要素にアクセス |
集合型 (セット) |
{ 値1 , 値2 , ⋯ } | ・異なるデータ型の要素を格納可能 ・長さ(要素数)が可変 ・重複する要素があっても無視される(一意な値をもつ要素が残る) ・要素の順序は保持しない |
※テキストp116にもまとまった表がありますので、参考にしてください
A [35, 30, 20, 15, 5, 1]
B [-10, 1, 5, 15, 20, 30]
C [30, 20, 15, 5, 1, -10]
D [35, 30, 20, 15, 2, 1]
<insert>
list.insert(i, x)
listの指定位置(i)に要素(x)を追加
<append> ※テキスト87p
list.append(x)
listに要素(x)を追加
<sort>
list.sort(*, key=None,reverse=False)
元のリスト自体を並び替え
key=abs とすると絶対値で並び替え
reverse=True/False で昇順降順切り替え
<pop>
list.pop(i)
指定位置(i)の要素を削除し、値を取得
aの2番目に5を追加する
[-10, 1, 5, 15, 20, 30]
aに35を追加する
[-10, 1, 5, 15, 20, 30, 35]
aを降順で並び替える
[35, 30, 20, 15, 5, 1, -10]
aの-1番目の要素を削除
[35, 30, 20, 15, 5, 1]
A [35, 30, 20, 15, 5, 1]
[実行結果]
[コード]
A [for i in list i ** 2]
B [i ** 2 for i in list]
C [i in i ** 2 for list]
D {i ** 2 for i in list}
<リストの内包表記>
[ 式 for 任意の変数名 in オブジェクト ]
オブジェクトの各要素を、任意の変数名で取り出し、式で評価、
その結果を要素とする新たなリストが返す
<集合> テキストp104~107
・重複する要素をもたない
・順序をもたない
・要素の追加は可能
・集合演算に利用可能
リストの各要素を2乗した値が実行結果となっている
構文に当てはまる選択肢は B or D
Dは { } で囲まれているため、結果は集合で返される
B [i ** 2 for i in list]
[実行結果]
[コード]
A values()
B keys()
C enumerate()
D items()
<辞書> テキストp092~098
・キー(key) : 値(value) のペアで1つの要素
・キーをインデックスとして、値を取得できる
・要素の追加・削除は可能
<values>
dict.values()
dictに含まれる全ての値の一覧を返す
<keys> ※テキスト87p
dict.keys()
dictに含まれる全てのキーの一覧を返す
<items>
dict.items()
dictに含まれる全てのキーと値のペアの一覧を返す
<enumerate>
list.enumerate()
・リストに含まれている要素にインデックスを0から割り振り、「(インデックス, 要素)」というタプルにまとめた特殊なオブジェクトを返す
・print関数では、特殊なオブジェクトの中の要素までを参照できず、for文で要素を1つずつ取り出すか、list関数を使用することでオブジェクトの中を参照することができる
実行結果を確認すると、辞書の要素が格納されたmenuのキーと値を並べて表示している
「k」にキー、「v」に値を設定できるメソッドが解答となる
D items()
※ テキスト116pの表も参照していただけると、解きやすいです。
A 辞書に対する帰属性判定演算子「in」「not in」による判定において、「含まれるかどうか」の判定の対象は「キー」ではなく「値」である。
B リストは順序を持つ、集合、タプルは順序を持たない要素の集まりである
C {}は空の集合を生成する式であり、空の辞書は生成できない
D タプルは要素の追加が不可能、リスト、集合、辞書は要素の追加が可能
A 辞書に対する帰属性判定演算子「in」「not in」による判定において、「含まれるかどうか」の判定の対象は「キー」ではなく「値」である。
<キーが辞書にあるかどうか調べる>
'key' in dict
dict に「key」というキーが含まれるか判定する
キーに'morning'が含まれるため、True が返る
キーに'sandwich'が含まれないため、False が返る
判定の対象は「キー」のため、Aは誤り
B リストは順序を持つ、集合、タプルは順序を持たない要素の集まりである
<タプル>
・リストとほぼ同じ特徴
・要素の変更・追加・削除ができない
タプルは、リストと同じく、順序を持つので、Bは誤り
C {}は空の集合を生成する式であり、空の辞書は生成できない
<空の集合、空の辞書の作り方>
集合も辞書も中かっこで表すため、空で作成する際は注意が必要
a = set()
空の集合が作られる
b = {}
空の辞書が作られる
{}は空の集合を生成するため、Cは誤り
D タプルは要素の追加が不可能、リスト、集合、辞書は要素の追加が可能
タプルは要素の追加が不可能で、リスト、集合、辞書は要素の追加が可能なため、Dが正解 コメント
D タプルは要素の追加が不可能、リスト、集合、辞書は要素の追加が可能