2019-01-03
8004 ワード
1.元祖pythonが提供するコンテナ型データ型とは、可変で秩序がある.(元祖は可変リスト)可変-削除変更はサポートされず、順序付けのみがサポートされます-各要素は決定された下付き文字に対応します
2.字面量と要素(要素1、要素2、要素3...)要素は任意のタイプのデータであってもよく、タイプは異なり、同じ要素に複数の「」「point=(100,30)print(point,type(point))を持つことができる.
注意:
1.空の元祖:()
tuple1 = () print(type(tuple1))
2.要素が1つしかない元祖
tuple2 = (100,) print(tuple2, type(tuple2))
3.複数の要素を直接カンマで区切り、括弧を付けずに表すのも元祖
tuple3 = 1, 2, 3 print(tuple3, type(tuple3))
「3.元祖取得要素はリストと同じ」「tuple 4=('成都','達州','綿陽','南充','広元')
個々の要素の取得
print(tuple4[1], tuple4[-1])
セクションの取得
print(tuple4[0:3]) print(tuple4[::-1])
遍歴する
for city in tuple4: print(city)
for index in range(len(tuple4)): print(tuple4[index])
補足:特殊な取得方法
1.変数1、変数2…=「元祖」--前の変数で元祖要素の値を順次取得します.(前の変数の個数と元祖要素の個数が一致することが要求されます)
point = (100, 200, 10) x, y, z = point # x,y = (100, 200) <==> x, y = 100, 200 print(x, y, z)
2.変数1、変数2=元祖--帯の変数によって元祖の残りの部分を取得する.
注意:この構造に含まれる変数は1つしかありません.持たない変数は複数あります.
name,*scores=('小明',100,89,67,99)print(name,scores)
name,num,*scores=('小明',100,89,67,99)print(name,num,scores)
*info,num 1,num 2=('小明',100,89,67,99)print(info,num 1,num 2)
info 1,*nums,num 1=('小明',100,89,67,99)print(nums)
補足:*の使い方
1.元祖とリストのデータを取る
nums = (1, 2, 3) nums2 = [11, 22, 33] print(*nums, *nums2)
「」「4.相関演算(リストと同様)+,*in/not in len(),max(),min(),sum(),tuple()」「tuple 1=(1,2,3)tuple 2=('aa','bb')print(tuple 1+tuple 2)print(tuple 1*3)
print('aaa' in tuple2)
「5.ソートsorted(シーケンス)-シーケンス内の要素をソートし、新しいリストを生成します(シーケンスにかかわらず、最後にリストが表示されます).
注:リスト.sort()--元のリストの要素の順序を変更します.「sorted(リスト)」「nums=(1,34,89,9)new_nums=sorted(nums,reverse=True)print(new_nums,tuple(new_nums),nums)を生成します.
new_strs = sorted('skjhabssnssalewz') print(str(new_strs), ''.join(new_strs))
joinの使用
「」「文字列.join(シーケンス)-シーケンス内の要素を取り出し、指定した文字列で接続します.シーケンス内の要素は文字列でなければなりません」「new_str = ''.join(['aks', 'bos', 'cous']) print(new_str, type(new_str))
list1 = [1, 345, 90, 9] new_list = list1.sort() # None; sortは新しいリストprint(list 1,new_list)を生成しません
「」「1.ディクショナリpythonが提供するコンテナ型データ型とは、可変かつ無秩序可変-要素の削除・変更をサポート-下付き操作はサポートされていません
2.字面量と要素は括弧で囲まれ、中には複数のキー値のペアがあり、各キー値のペアはカンマで区切られています.キー値ペアは辞書の要素です.{key1:value1, key2:value2, key3:value3...}
キー値ペア-キー/key:値/value(キー値ペア);キー値ペアはペアで表示され、辞書から離れて単独で表示される必要があります.意味のないキー/keyは可変であり、一意でなければなりません.実際には、文字列をキー値/valueとして使用します.任意のタイプのデータでも構いません.
なお、辞書はデータを格納し、実質的には値によって格納する.keyは、値に対応するラベルと値の取得方法""dict 1={}#空の辞書print(type(dict 1))
dict 1={'a':100,10:200,(1,2):'abc','a':111,'a':[1,11,111]}print(dict 1)#{'a':[1,11,111],10:200,(1,2):'abc'},key一意
dict2 = {[1, 2]: 120} # TypeError: unhashable type: 'list'
「3.辞書をいつ使うか:同じ意味のない複数のデータ(区別が必要)は辞書を使います.たとえば、1人の異なる情報を保存し、1台の車の異なる自信をいつ使うか:保存した複数のデータは同じ意味のデータ(区別は必要ありません)で、リストを使います.例えば:1クラスの学生情報を保存し、すべての価格を保存します」 person = ['xiaohua', 18, 'girl', 160, 90, 89] print(person[1]) person[-2]
person = {'name': 'xiaohua', 'age': 18, 'sex': 'girl', 'height': 160, 'weight': 90, 'score': 89} print(person['age'])
練習:変数を宣言してクラスの学生情報(4人の学生)を保存し、学生ごとに名前、電話、年齢を保存する必要があります.
all_students=[{'name':'明ちゃん','tel':'23897823','age':20},{'name':'張三','tel':'23872211','age':28},{'name':'李四','tel':'2111111222','age':18},{'name':'xiaohua','tel':'111228233','age':30}]print(all_students[0])
「」「辞書要素の添削
1.検索(値を取得)注意:辞書のキー値は単独で持ち出すことに何の意味もありません
a.辞書[key]-辞書のkey対応値を取得注意:keyが存在しない場合、keyError""car={'color':'黄色','type':'スポーツカー','price':500000}print(car['color'])print(car['price'])
print(car['speed']) # KeyError: 'speed'
「"b.辞書.get(key)-辞書のkey対応値を取得します.keyが存在しない場合はエラーは発生せず、デフォルト値None辞書.get(key,値1)-辞書のkey対応値を取得します.keyが存在しない場合はエラーは発生せず、指定した値1""print(car.get('type'))print(car.get('speed'))print(car.get('speed'))
print(car.get('color','赤')#黄色print(car.get('speed',0))#0
「」「c.遍歴辞書注意:for-in遍歴辞書で直接取ったのはkey」「dict 1={'a':100,'b':200,'c':300}
辞書を巡って取ったのはkey(推奨)
for key in dict1: # key print(key, end=' ') # value print(dict1[key])
print(dict1.values(), dict1.items())
辞書のvalues()を巡り、すべての値を取得します.
for value in dict1.values(): print(value)
values = []
for key in dict1:
values.append(dict1[key])
for value in values:
print(value)
辞書のitems()を巡り、keyとvalueを直接取得します(使用は推奨されません)
for key, value in dict1.items(): print(key, value)
items = []
for key in dict1:
items.append((key, dict1[key]))
for key,value in items:
print(key, value)
「」「2.辞書を増やして[key]=値を変更-keyが存在しない場合はキー値ペアを追加;keyが存在する場合はkeyに対応する値を変更する」「movie={'name':'喜羊羊与灰太狼','type':'漫画','time':120}
追加
movie['score'] = 7.9 print(movie)
変更
movie['type']='お笑い'print(movie)
「」「3.削除(キー値ペアの削除)a.del辞書[key]-辞書で指定したキーに対応するキー値ペアの削除
b.辞書Pop(key)-辞書のkeyに対応する値""del movie['time']print(movie)を取り出します.
name = movie.pop('name') print(movie, name)
練習:辞書で学生の情報を保存します:{'name':'張三','age':30,'score':80}
名前->名前の変更、age->年齢の変更など、変更する情報を入力します.abc->プロンプト「この情報がありません」
「変更する情報を入力してください:name新しい名前を入力してください:李四{'name':'李四','age':30,'score':80}
変更する情報を入力してください:age新しい年齢を入力してください:18{'name':'張三','age':18,'score':80}
変更する情報を入力してください:abcにはこの情報がありません!「student={'name':'張三','age':30,'score':80}message=input('修正する情報を入力してください:')
if student.get(message): if message == 'name': new_name=input('新しい名前を入力してください:')student['name']=new_name elif message == 'age': new_age=int(input('新しい年齢を入力してください:'))student['age']=new_age else: new_score=input('新しいスコアを入力してください:')student['score']=new_score
Else:print('この情報はありません!')
「」「1.集合(set)が可変で無秩序であること.要素が一意で可変でないこと
2.字面量{要素1,要素2,要素3...}"""set1 = {1, 23, 'abc'} print(set1)
set1 = {1, 23, 'abc', [1, 2]} # TypeError: unhashable type: 'list'
空の集合を表す
set2 = set() print(type(set2))
set3 = {1, 2, 1, 2, 2} print(set3)
集合にはデリバリー機能がついています
list1 = [1, 2, 1, 2, 2] list1 = list(set(list1)) print(list1)
「」「3.削除・変更」「」set 1={1,38,90,8}
1.調査
コレクションは単独で単一の要素を取得することはできません.1つの遍歴しかできません.
for item in set1: print(item)
2.増加
「」「a.コレクション.add(エレメント)-指定したエレメントb.コレクション.update(シーケンス)-シーケンスのエレメントをコレクションに追加」「set 1={1,38,90,8}set 1.add('abc') print(set1)
set1.update('abc') print(set1)
set1.update({'aa': 10, 'bb': 20}) print(set1)
3.削除
"集合.remove(要素)---集合で指定した要素を削除する""set 1={1,38,90,8}set 1.remove(90) print(set1)
"""4.数学集合演算交差(&):2つの集合の共通の要素を取得して新しい集合を生成します(|):2つの集合の要素を結合して新しい集合差分を生成します(-):集合1-集合2:集合1に集合2が含まれている部分を削除し、残りは新しい集合補完を生成します(^):2つの集合を結合し、共通部分を除去し、残りの部分は新しい集合サブセットを生成する判断:集合1>集合2->集合1に集合2が含まれているか否かを判断し、集合1""set 1={1,2,3,4,5,6}set 2={4,5,6,7,8}
交差
print(set1 & set2) # {4, 5, 6}
へいれつ
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}
ダイバーシティ
print(set1 - set2) # {1, 2, 3}
サプリメント
print(set1 ^ set2) # {1, 2, 3, 7, 8}
print({1, 2, 3, 9, 18} > {1, 2, 3, 0}) # False print({1, 2, 3, 9, 18} > {1, 2, 3}) # True、
print({1, 2, 3} > {1, 2, 3}) # False print({1, 2, 3} >= {1, 2, 3}) # True
2.字面量と要素(要素1、要素2、要素3...)要素は任意のタイプのデータであってもよく、タイプは異なり、同じ要素に複数の「」「point=(100,30)print(point,type(point))を持つことができる.
注意:
1.空の元祖:()
tuple1 = () print(type(tuple1))
2.要素が1つしかない元祖
tuple2 = (100,) print(tuple2, type(tuple2))
3.複数の要素を直接カンマで区切り、括弧を付けずに表すのも元祖
tuple3 = 1, 2, 3 print(tuple3, type(tuple3))
「3.元祖取得要素はリストと同じ」「tuple 4=('成都','達州','綿陽','南充','広元')
個々の要素の取得
print(tuple4[1], tuple4[-1])
セクションの取得
print(tuple4[0:3]) print(tuple4[::-1])
遍歴する
for city in tuple4: print(city)
for index in range(len(tuple4)): print(tuple4[index])
補足:特殊な取得方法
1.変数1、変数2…=「元祖」--前の変数で元祖要素の値を順次取得します.(前の変数の個数と元祖要素の個数が一致することが要求されます)
point = (100, 200, 10) x, y, z = point # x,y = (100, 200) <==> x, y = 100, 200 print(x, y, z)
2.変数1、変数2=元祖--帯の変数によって元祖の残りの部分を取得する.
注意:この構造に含まれる変数は1つしかありません.持たない変数は複数あります.
name,*scores=('小明',100,89,67,99)print(name,scores)
name,num,*scores=('小明',100,89,67,99)print(name,num,scores)
*info,num 1,num 2=('小明',100,89,67,99)print(info,num 1,num 2)
info 1,*nums,num 1=('小明',100,89,67,99)print(nums)
補足:*の使い方
1.元祖とリストのデータを取る
nums = (1, 2, 3) nums2 = [11, 22, 33] print(*nums, *nums2)
「」「4.相関演算(リストと同様)+,*in/not in len(),max(),min(),sum(),tuple()」「tuple 1=(1,2,3)tuple 2=('aa','bb')print(tuple 1+tuple 2)print(tuple 1*3)
print('aaa' in tuple2)
「5.ソートsorted(シーケンス)-シーケンス内の要素をソートし、新しいリストを生成します(シーケンスにかかわらず、最後にリストが表示されます).
注:リスト.sort()--元のリストの要素の順序を変更します.「sorted(リスト)」「nums=(1,34,89,9)new_nums=sorted(nums,reverse=True)print(new_nums,tuple(new_nums),nums)を生成します.
new_strs = sorted('skjhabssnssalewz') print(str(new_strs), ''.join(new_strs))
joinの使用
「」「文字列.join(シーケンス)-シーケンス内の要素を取り出し、指定した文字列で接続します.シーケンス内の要素は文字列でなければなりません」「new_str = ''.join(['aks', 'bos', 'cous']) print(new_str, type(new_str))
list1 = [1, 345, 90, 9] new_list = list1.sort() # None; sortは新しいリストprint(list 1,new_list)を生成しません
「」「1.ディクショナリpythonが提供するコンテナ型データ型とは、可変かつ無秩序可変-要素の削除・変更をサポート-下付き操作はサポートされていません
2.字面量と要素は括弧で囲まれ、中には複数のキー値のペアがあり、各キー値のペアはカンマで区切られています.キー値ペアは辞書の要素です.{key1:value1, key2:value2, key3:value3...}
キー値ペア-キー/key:値/value(キー値ペア);キー値ペアはペアで表示され、辞書から離れて単独で表示される必要があります.意味のないキー/keyは可変であり、一意でなければなりません.実際には、文字列をキー値/valueとして使用します.任意のタイプのデータでも構いません.
なお、辞書はデータを格納し、実質的には値によって格納する.keyは、値に対応するラベルと値の取得方法""dict 1={}#空の辞書print(type(dict 1))
dict 1={'a':100,10:200,(1,2):'abc','a':111,'a':[1,11,111]}print(dict 1)#{'a':[1,11,111],10:200,(1,2):'abc'},key一意
dict2 = {[1, 2]: 120} # TypeError: unhashable type: 'list'
「3.辞書をいつ使うか:同じ意味のない複数のデータ(区別が必要)は辞書を使います.たとえば、1人の異なる情報を保存し、1台の車の異なる自信をいつ使うか:保存した複数のデータは同じ意味のデータ(区別は必要ありません)で、リストを使います.例えば:1クラスの学生情報を保存し、すべての価格を保存します」 person = ['xiaohua', 18, 'girl', 160, 90, 89] print(person[1]) person[-2]
person = {'name': 'xiaohua', 'age': 18, 'sex': 'girl', 'height': 160, 'weight': 90, 'score': 89} print(person['age'])
練習:変数を宣言してクラスの学生情報(4人の学生)を保存し、学生ごとに名前、電話、年齢を保存する必要があります.
all_students=[{'name':'明ちゃん','tel':'23897823','age':20},{'name':'張三','tel':'23872211','age':28},{'name':'李四','tel':'2111111222','age':18},{'name':'xiaohua','tel':'111228233','age':30}]print(all_students[0])
「」「辞書要素の添削
1.検索(値を取得)注意:辞書のキー値は単独で持ち出すことに何の意味もありません
a.辞書[key]-辞書のkey対応値を取得注意:keyが存在しない場合、keyError""car={'color':'黄色','type':'スポーツカー','price':500000}print(car['color'])print(car['price'])
print(car['speed']) # KeyError: 'speed'
「"b.辞書.get(key)-辞書のkey対応値を取得します.keyが存在しない場合はエラーは発生せず、デフォルト値None辞書.get(key,値1)-辞書のkey対応値を取得します.keyが存在しない場合はエラーは発生せず、指定した値1""print(car.get('type'))print(car.get('speed'))print(car.get('speed'))
print(car.get('color','赤')#黄色print(car.get('speed',0))#0
「」「c.遍歴辞書注意:for-in遍歴辞書で直接取ったのはkey」「dict 1={'a':100,'b':200,'c':300}
辞書を巡って取ったのはkey(推奨)
for key in dict1: # key print(key, end=' ') # value print(dict1[key])
print(dict1.values(), dict1.items())
辞書のvalues()を巡り、すべての値を取得します.
for value in dict1.values(): print(value)
values = []
for key in dict1:
values.append(dict1[key])
for value in values:
print(value)
辞書のitems()を巡り、keyとvalueを直接取得します(使用は推奨されません)
for key, value in dict1.items(): print(key, value)
items = []
for key in dict1:
items.append((key, dict1[key]))
for key,value in items:
print(key, value)
「」「2.辞書を増やして[key]=値を変更-keyが存在しない場合はキー値ペアを追加;keyが存在する場合はkeyに対応する値を変更する」「movie={'name':'喜羊羊与灰太狼','type':'漫画','time':120}
追加
movie['score'] = 7.9 print(movie)
変更
movie['type']='お笑い'print(movie)
「」「3.削除(キー値ペアの削除)a.del辞書[key]-辞書で指定したキーに対応するキー値ペアの削除
b.辞書Pop(key)-辞書のkeyに対応する値""del movie['time']print(movie)を取り出します.
name = movie.pop('name') print(movie, name)
練習:辞書で学生の情報を保存します:{'name':'張三','age':30,'score':80}
名前->名前の変更、age->年齢の変更など、変更する情報を入力します.abc->プロンプト「この情報がありません」
「変更する情報を入力してください:name新しい名前を入力してください:李四{'name':'李四','age':30,'score':80}
変更する情報を入力してください:age新しい年齢を入力してください:18{'name':'張三','age':18,'score':80}
変更する情報を入力してください:abcにはこの情報がありません!「student={'name':'張三','age':30,'score':80}message=input('修正する情報を入力してください:')
if student.get(message): if message == 'name': new_name=input('新しい名前を入力してください:')student['name']=new_name elif message == 'age': new_age=int(input('新しい年齢を入力してください:'))student['age']=new_age else: new_score=input('新しいスコアを入力してください:')student['score']=new_score
print(student)
Else:print('この情報はありません!')
「」「1.集合(set)が可変で無秩序であること.要素が一意で可変でないこと
2.字面量{要素1,要素2,要素3...}"""set1 = {1, 23, 'abc'} print(set1)
set1 = {1, 23, 'abc', [1, 2]} # TypeError: unhashable type: 'list'
空の集合を表す
set2 = set() print(type(set2))
set3 = {1, 2, 1, 2, 2} print(set3)
集合にはデリバリー機能がついています
list1 = [1, 2, 1, 2, 2] list1 = list(set(list1)) print(list1)
「」「3.削除・変更」「」set 1={1,38,90,8}
1.調査
コレクションは単独で単一の要素を取得することはできません.1つの遍歴しかできません.
for item in set1: print(item)
2.増加
「」「a.コレクション.add(エレメント)-指定したエレメントb.コレクション.update(シーケンス)-シーケンスのエレメントをコレクションに追加」「set 1={1,38,90,8}set 1.add('abc') print(set1)
set1.update('abc') print(set1)
set1.update({'aa': 10, 'bb': 20}) print(set1)
3.削除
"集合.remove(要素)---集合で指定した要素を削除する""set 1={1,38,90,8}set 1.remove(90) print(set1)
"""4.数学集合演算交差(&):2つの集合の共通の要素を取得して新しい集合を生成します(|):2つの集合の要素を結合して新しい集合差分を生成します(-):集合1-集合2:集合1に集合2が含まれている部分を削除し、残りは新しい集合補完を生成します(^):2つの集合を結合し、共通部分を除去し、残りの部分は新しい集合サブセットを生成する判断:集合1>集合2->集合1に集合2が含まれているか否かを判断し、集合1""set 1={1,2,3,4,5,6}set 2={4,5,6,7,8}
交差
print(set1 & set2) # {4, 5, 6}
へいれつ
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}
ダイバーシティ
print(set1 - set2) # {1, 2, 3}
サプリメント
print(set1 ^ set2) # {1, 2, 3, 7, 8}
print({1, 2, 3, 9, 18} > {1, 2, 3, 0}) # False print({1, 2, 3, 9, 18} > {1, 2, 3}) # True、
print({1, 2, 3} > {1, 2, 3}) # False print({1, 2, 3} >= {1, 2, 3}) # True