Python入門ノート-第五章(元祖tuple,集合set,辞書dict)
9077 ワード
第五章:元祖tuple,集合set,辞書dict
1.元祖—tuple()秩序 はアクセス可能であるが、変更できない(内容が変更できないことを指す) .元祖データは、(1,2,"abc",'a',[1,2,3]) のような任意のタイプであってもよい.リストリストリストリストの使用可能な操作は、修正を除いて、元祖はすべて使用することができて、すなわちインデックス、スライス、加算、乗算などはすべて 通用することができます
1.1一般的な操作インデックス(Listと同じ)
結果:5
質問:なぜa=(i for i in range(1,5))で元祖を作成できないのですか?スライス 加算、乗算
結果:遍歴(単層)
結果:遍歴(二層)
結果:
1.2共通関数 len、max、min用法はリストリストリストと一致する count、index 残りのリストリストリストで使用できる関数は、元祖tupleが基本的に で使用できる
結果:
1.3元祖は内包操作がないすなわちa=(i for i in range(1,10)) 誤報 1.4付属-2つの変数の交換 C、JAVA、C++などの言語の書き方とPythonの書き方の違い
2.集合—set{}は高校の集合概念と一致し、すなわち無秩序であり、値は唯一 である.コレクションが無秩序で、値が一意であるため、インデックス、スライス、countなどの関数 は使用できません.
2.1集合の定義の2つの方法
結果:
2.2集合の特徴無秩序、すなわちインデックス、スライス、countなどの関数 を使用できない.は一意である、この特徴を利用して重複値 を排除することができる.
結果:の集合内のデータは、int、str、list、tuple、凍結集合などの のハッシュ可能なデータのみを配置することができる.
2.3集合の遍歴及び内包セットの遍歴と内包操作はリストリストリストと一致する
結果:
2.4集合の関数について len,max,minはリストリストリストとずっと、 を繰り返しません. add,clear pop,remove,discard
結果:実際のテストでは、複数回実行されますが、関数pop削除要素はランダムではなく、要素1を削除しただけです.pop自体がランダム削除ではないからですか、それともキューピットノートのせいですか.深く究明する必要がある 関数popは、その場操作 である.
結果:
思考:なぜremoveが存在しない値がkeyerrorに報告されるのか. copyは、リストリスト操作と一致し、浅いコピーであり、ここでは を繰り返さない.
3辞書dictには順序の組み合わせデータがなく、データはキー値対で を呈する.辞書を作成するには多くの方法があります.一般的には、自分がよく使う(2番目のコロン付き)を選んで、残りの自分が認識できればいい です.
3.1辞書の作成方法には、 という一般的な方法があります.空の辞書を作成
結果:値のある辞書を作成します.一般的には、この方法で辞書を作成します.概要
結果: dictで値付き辞書1 を作成する
結果: dictで値付き辞書2を作成し、キーワードパラメータ を利用する.
結果: dictで値付き辞書3 を作成する
結果:
3.2辞書の特徴辞書は無秩序であるため、スライスおよびインデックス操作 はない.辞書のデータは、キー値ペア、すなわちkvから構成されていない. key:int,string,float,tuplleなどのハッシュ可能な値でなければなりませんが、list,set,dictは できません. value:任意の値
3.3辞書の一般的な操作メンバーアクセス
結果:メンバー検出
結果:(メンバー検出時にキー値が検出されたことを示す)辞書は遍歴して、Python 2とPython 3は異なって、コードは通用しないで、ここでPython 3 だけを話しますキー値key を巡回
結果:
結果:辞書の値 のみにアクセス注意以下の特殊用法
結果:
3.4辞書生成式(辞書内包)
結果:
3.5ディクショナリ関連関数 len,max,min,clearなどの汎用関数は を概説しない. str(辞書)、辞書の文字列フォーマット を返します.
結果: items,keys,values
結果: getは、作成キー値に基づいて対応する値を返し、デフォルト値 を設定できることが利点である. fromkeysは、作成するシーケンスをキーとして使用し、すべてのキーのキー値を1つの値 にする.
[画像アップロード中...(image-ece 40-13814146487-0)]
結果:
1.元祖—tuple()
1.1一般的な操作
a = (1,2,3,4,5)
print(a[4])
print(a[12]) #
結果:5
質問:なぜa=(i for i in range(1,5))で元祖を作成できないのですか?
a = (1,2,3,4,5)
print(a[0:3])
print(a[0:100]) #
:
(1, 2, 3)
(1, 2, 3, 4, 5)
a = (1,2,3,4,5)
b = (1,2,3)
c = a + b
d = a * 3
print(c)
print(d)
結果:
(1, 2, 3, 4, 5, 1, 2, 3)
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
a = (1,2,"aabbcc","ncu","dddaa")
for i in a:
print(i)
結果:
1
2
aabbcc
ncu
dddaa
a = ((1,2,3),("aa","bb","cc"),("dd",4,"ee"))
for i in a:
print(i)
for k,v,j in a:
print(k,v,j)
結果:
(1, 2, 3)
('aa', 'bb', 'cc')
('dd', 4, 'ee')
1 2 3
aa bb cc
dd 4 ee
1.2共通関数
a = (1,3,5,6,33,55,66,3,3)
print(a.count(3))
print(a.index(3)) # ,
結果:
3
1
1.3元祖は内包操作がない
a = 1
b = 3
#####C/C++/JAVA :
t = a
a = b
b = t
Python :
a,b = b,a
2.集合—set{}
2.1集合の定義
#
a = set()
print(a)
print(type(a))
# , , dict
a = {1,2,3,4,5,}
print(a)
print(type(a))
#
a = {}
print(a)
print(type(a))
結果:
set()
{1, 2, 3, 4, 5}
{}
2.2集合の特徴
a = {1,2,3,4,1,1,1,1,1}
print(a)
結果:
{1, 2, 3, 4}
2.3集合の遍歴及び内包
a = {1,2,3,4,5,66,66,66,77,7,8,6,9,10}
print(a)
for i in a:
print(i,end = " ")
print(" ")
b = {i for i in a if i % 2 == 0}
print(b,end = " ")
結果:
{1, 2, 3, 4, 5, 66, 7, 8, 6, 9, 10, 77}
1 2 3 4 5 66 7 8 6 9 10 77
{2, 66, 4, 6, 8, 10}
2.4集合の関数について
#add,
a = {1,2,3}
print(id(a))
a.add(123)
print(id(a))
print(a)
#clrar,
a = {1,2,3}
print(id(a))
a.clear()
print(id(a))
print(a)
:# add clear
140431563811976
140431563811976
{123, 1, 2, 3}
140431563812648
140431563812648
set()
# pop, list , ,
# pop, set
a = {1,2,3,4}
print(id(a))
a.pop()
print(a)
print(id(a))
結果:
140431563811976
{2, 3, 4}
140431563811976
#remove, , ,
a = {1,2,3,44,55}
print(id(a))
a.remove(44)
print(id(a))
print(a)
#discard, , remove , ,
b = {11,22,33,44,55}
print(id(b))
b.discard(44)
print(id(b))
print(b)
b.discard(66)
print(id(b))
print(b)
結果:
140431702354856
140431702354856
{1, 2, 3, 55}
140431554061704
140431554061704
{33, 11, 22, 55}
140431554061704
{33, 11, 22, 55}
思考:なぜremoveが存在しない値がkeyerrorに報告されるのか.
3辞書dict
3.1辞書の作成方法
# 1
a = {}
print(a)
# 2
a = dict()
print(a)
結果:
{}
{}
a = {"one":1,"two":2,"three":3}
print(a)
結果:
{'one': 1, 'two': 2, 'three': 3}
a = dict({"one":1,"two":2,"three":3})
print(a)
結果:
{'one': 1, 'two': 2, 'three': 3}
a = dict(one=1,two=2,three=3)
print(a)
結果:
{'one': 1, 'two': 2, 'three': 3}
a = dict([(one,1),(two,2),(three,3)])
print(a)
結果:
{'one': 1, 'two': 2, 'three': 3}
3.2辞書の特徴
3.3辞書の一般的な操作
# , , ""
a = {"one":1,"two":2,"three":3}
print(a["one"])
#
a["one"] = "enis"
print(a)
# ,
del a["one"]
print(a)
結果:
1
{'one': 'enis', 'two': 2, 'three': 3}
{'two': 2, 'three': 3}
#
a = {"one":1,"two":2,"three":3}
if "two" in a :
print("key")
if "2" in a:
print("value")
if ("two",2) in a:
print("kv")
結果:(メンバー検出時にキー値が検出されたことを示す)
key
#
a = {"one":1,"two":2,"three":3}
for k in a:
print(k,d[k])
結果:
one 1
two 2
three 3
#
a = {"one":1,"two":2,"three":3}
for k in a.keys():
print(k,d[k])
結果:
one 1
two 2
three 3
a = {"one":1,"two":2,"three":3}
for v in a.values():
print(v)
:
1
2
3
a = {"one":1,"two":2,"three":3}
for k,v in a.items():
print(k,"———",v)
結果:
one ——— 1
two ——— 2
three ——— 3
3.4辞書生成式(辞書内包)
#
a = {"one":1,"two":2,"three":3}
aa = {k:v for k,v in a.items()}
print(aa)
#
aaa = {k:v for k,v in a.items() if v % 2 == 0}
print(aaa)
結果:
{'one': 1, 'two': 2, 'three': 3}{'two': 2}
3.5ディクショナリ関連関数
a = {"one":1,"two":2,"three":3}
print(str(a))
結果:
{'one': 1, 'two': 2, 'three': 3}
a = {"one":1,"two":2,"three":3}
#
i = a.items()
print(type(i))
print(i)
#
k = a.keys()
print(type(k))
print(k)
#
v = a.values()
print(type(v))
print(v)
結果:
dict_items([('one', 1), ('two', 2), ('three', 3)])dict_keys(['one', 'two', 'three'])dict_values([1, 2, 3])
a = {"one": 1, "two": 2, "three": 3}
# get None
print(d.get("one333"))
print(d.get("one"))
# one333 100
print(d.get("one333",100))
# a one333 , ,
print(d["one333"])
:None1100
a = {"one", "two", "three"}
# fromkeys
# fromskeys ,dict
a = dict.fromkeys(a,"hhhhhhhh")
print(a)
[画像アップロード中...(image-ece 40-13814146487-0)]
結果:
{'two': 'hhhhhhhh', 'three': 'hhhhhhhh', 'one': 'hhhhhhhh'}