以下のモジュールを含むコレクション:
[ '両端キュー'、 'defaultdict'、 'namedtuple'、 'UserDict'、 'のUserList'、
'のUserString'、 'カウンター'、 'OrderedDict'、 'ChainMap']
詳細namedtuple
タプル
タプル開梱プロパティ
$ ipython
パイソン3.7.3(デフォルト、2019年3月28日、午前10時38分38秒)MSC v.1915 32ビット(インテル)]
「著作権」、「クレジット」または詳細については、「ライセンス」を入力し
IPython 7.4.0 - 強化された対話型のPython。タイプ「?」助けを求めます。
user_tuple =( 'laoliu'、30、175、 '北京'):[1]で
#パイソンの特性を開梱
[2]では:名前、*その他= user_tuple
名前:[3]で
[3]アウト: 'キャンディ'
[4]:他の
アウト[4]:[30、175、 '北京']
#開梱
名前、年齢、絶頂、アドレス= user_tuple:[5]では
印刷(名前、年齢、絶頂、アドレス):[6]では
laoliu 30 175北京
[7]で:D = {}
#dictをキーとしてタプルではなく、リスト、タプルは不変であるため、
D [user_tuple] = '上海':[8]に
D:[9]で
OUT [9]:{( 'laoliu'、30、175、 '北京'): '上海'}
例示的な使用のnamedtuple
パイソン3.7.3(デフォルト、2019年3月28日、午前10時38分38秒)MSC v.1915 32ビット(インテル)]
「著作権」、「クレジット」または詳細については、「ライセンス」を入力し
IPython 7.4.0 - 強化された対話型のPython。タイプ「?」助けを求めます。
[1]において:コレクションからnamedtupleをインポート
ユーザー= namedtuple( "ユーザー"、[ '名前'、 '年齢']):[2]で
[3]において:ユーザー=ユーザー(NAME = '劉'、年齢= 18)
プリント(user.name、user.age):[4]で
劉18
user_tuple =( '張'、19)[5]で
#*パラメータだけでなく、位置パラメータを渡すには、パラメータ渡しモード詳細リファレンスの関数であります
USER2 =ユーザー(* user_tuple):[6]に
プリント(user.name、user.age):[7]で
劉18
プリント(user2.name、user2.age):[8]に
張19
user_dict = { '名前': '王'、 '年齢':20} [9]で
**質量参加に#、つまり、キーワードパラメータは、パラメータ渡しモードは、参照機能を説明することができます
USER3 =ユーザー(** user_dict):[10]に
プリント(user3.name、user3.age):[11]に
王20
新しいプロパティ#の決済後
[12]では:ユーザー= namedtuple( 'ユーザー'、[ '名前'、 '年齢'、 '高さ'])
[13]中:ユーザー=ユーザー(NAME = '劉'、年齢= 18)
-------------------------------------------------- -------------------------
TypeError例外トレースバック(最新の呼び出しの最後)
に
----> 1人のユーザー=ユーザー(名= '劉'、年齢= 18)
TypeError例外:__new __()1つの必要な位置引数不足している: '高さ' を
#最初のソリューションは、キーワードを追加することです
[14]中:ユーザー=ユーザー(NAME = '劉'、年齢= 18、高さ= 170)
プリント(user.name、user.age、user.height):[15]に
劉18 170
プリント(user2.name、user2.age、user2.height):[16]に
-------------------------------------------------- -------------------------
AttributeErrorにトレースバック(最新の呼び出しの最後)
に
----> 1枚のプリント(user2.name、user2.age、user2.height)
AttributeError:「ユーザー」オブジェクトが何の属性「高さ」を持っていません
[17]では:user2の
アウト[17]:ユーザー(名前= 'チャン'、年齢= 19)
#これの位置パラメータとキーワード引数ミックスの例としては、渡す関数パラメータであります
[18]中:USER2 =ユーザー(* user_tuple、高さ= 171)
USER2:[19]で
アウト[19]:ユーザー(名前= 'チャン'、年齢= 19、高さ= 171)
USER3:[20]に
アウト[20]:ユーザー(名前= '王'、年齢= 20)
参考例と#エラー
use3 =ユーザー(** user_dict、 '高':172)[21]に
ファイル「」、1行目
use3 =ユーザー(** user_dict、 '高さ':172)
^
SyntaxError:無効な構文
参考例と#エラー
[22]で:=ユーザーuse3(** user_dict、{ '高':172})
ファイル「」、1行目
use3 =ユーザー(** user_dict、{ '高':172})
^
SyntaxError:位置引数は開梱キーワード引数を次の
user_dict:[23]で
OUT [23]:{ '名前': '王'、 '年齢':20}
user_dict.update({ '高':172})[24]に
[25]で:user_dict
OUT [25]:{ '名前': '王'、 '年齢':20、 '高':172}
USER3 =ユーザー(** user_dict):[26]に
USER3:[27]で
アウト[27]:ユーザー(名前= '王'、年齢= 20、高さ= 172)
defaultdictは、詳細な使用しています
パイソン3.7.3(デフォルト、2019年3月28日、午前10時38分38秒)MSC v.1915 32ビット(インテル)]
「著作権」、「クレジット」または詳細については、「ライセンス」を入力し
IPython 7.4.0 - 強化された対話型のPython。タイプ「?」助けを求めます。
[1]:コレクションインポートdefaultdictから
ユーザー= [ 'liu1'、 'liu2'、 'liu3'、 'liu1'、 'liu1'、 'liu2']:[2]で
時代の#は、それぞれの名前は、統計ユーザーに表示されます。[3]
user_dict = {}:[4]で
#これは、解決するための我々の共通のアプローチです
[5]:ユーザーがユーザーのために:
...:もしuser_dictでユーザー:
...:user_dict [ユーザー] + = 1
...:他:
...:user_dict [ユーザー] = 1
...:
user_dictの#結果:[6]では
OUT [6]:{ 'liu1':3 'liu2':2 'liu3':1}
#第二の溶液は、SetDefaultを使用して()
user_dict2 = {}:[7]で
ユーザーがユーザーの[8]で:
...:user_dict2.setdefault(ユーザー、0)
...:user_dict2 [ユーザー] + = 1
...:
user_dict2:[9]で
OUT [9]:{ 'liu1':3 'liu2':2 'liu3':1}
#第三液を用いdefaultdict()(推奨)
[10]:user_dict3 = defaultdict(INT)
[11]で:ユーザーがユーザーのために:
...:user_dict3 [ユーザー] + = 1
...:
[12]で:user_dict3
OUT [12]:defaultdict(INT、{ 'liu1':3 'liu2':2 'liu3':1})
#Defaultdict()拡張の使用は、いくつかの複雑なデータ構造を作成します
#は、次のようなデータ構造を要求します:
{
'GROUP1':{
'名前': ''、
'NUMS':0
}
}
[13]中:DEF gen_default():
...:リターン{ '名前': ''、 'NUMS':0}
...:
default_dict = defaultdict(gen_default):[14]に
[15]中:default_dict [ 'GROUP1']
OUT [15]:{ '名前': ''、 'NUMS':0}
詳しい使用デック
両端キューは、スレッドセーフである、非スレッドセーフリスト、マルチスレッドプログラミングの場合にもっと注意を払うように
キュー(待ち行列)は、実際に両端キュー内に実装されます
両端キューがCで書かれている、非常に高速で、いつでも使用することができます
パイソン3.7.3(デフォルト、2019年3月28日、午前10時38分38秒)MSC v.1915 32ビット(インテル)]
「著作権」、「クレジット」または詳細については、「ライセンス」を入力し
IPython 7.4.0 - 強化された対話型のPython。タイプ「?」助けを求めます。
[1]において:コレクションから両端キューをインポート
A = [ 'B'、 'C'、 'D']:[2]で
#両端キューにリスト
= a_duqueと(A):[3]で
[4]:a_duque
OUT [4]:両端キュー([ 'B'、 'C'、 'D'])
両端キューに#のタプル
[5]でA:B =(1,2,3)
= b_duque及び(B):[6]で
[7]:b_duque
[7]と([1、2、3])を
で[8]:C = { "A":1、 "B":2、 "C":4}
両端キューに#サイコロ
[9]:= c_dequeおよび(c)
[10]において、c_deque
OUT [10]:両端キュー([ 'A'、 'B'、 'C'])
追加操作で#のDeque、同じリスト
[11]、c_deque.append( 'D')で
[12]において、c_deque
OUT [12]:両端キュー([ 'A'、 'B'、 'C'、 'D'])
#Deque.appendleft()位置0の左側に要素を追加します
[13]、c_deque.appendleft(E '')において
[14]で:c_deque
OUT [14]両端キュー([ 'E'、 ''、 'B'、 'C'、 'D'])
#シャローコピー
[15]:= c_deque_copy c_deque.copy()
[16]中:c_deque_copy.count()
-------------------------------------------------- -------------------------
TypeError例外トレースバック(最新の呼び出しの最後)
に
----> 1 c_deque_copy.count()
例外TypeError:カウント()は引数を1つだけ(0が与えられた)かかり
#要素の出現回数を探します
[17]中:c_deque_copy.count( 'A')
1:[17]アウト
[18]で:c_deque_copy
OUT [18]:両端キュー([ 'E'、 ''、 'B'、 'C'、 'D'])
[19]中:c_deque_copy [1] = 'A1'
[20]において、c_deque_copy
OUT [20]:両端キュー([ 'E'、 'A1'、 'B'、 'C'、 'D'])
[21]で:c_deque
OUT [21]両端キュー([ 'E'、 ''、 'B'、 'C'、 'D'])
#、2つのデック、かつて、修飾部位の右にマージ両端キューをマージNoneを返します
[22]中:c_deque.extend(a_duque)
c_deque:[23]で
OUT [23]:両端キュー([ 'E'、 ''、 'B'、 'C'、 'D'、 'B'、 'C'、 'D'])
#Noneを返し、左、場所の編集に元の完全な統合を両端キューにする2つの両端キューを、マージ
[24]中:c_deque.extendleft(b_duque)
[25]で:c_deque
OUT [25]:両端キュー([3、2、1、 'E'、 ''、 'B'、 'C'、 'D'、 'B'、 'C'、 'D'])
#要素のインデックス位置を返します。
[26]中:c_deque.index( 'B')
5:[26]アウト
#挿入要素内の位置を考えます
[27]中:c_deque.insert(2、 'F')
c_deque:[28]で
OUT [28]:両端キュー([3、2、 'F'、1、 'E'、 'A'、 'B'、 'C'、 'D'、 'B'、 'C'、 'D'] )
[29]中:c_deque.rotate( 'A')
-------------------------------------------------- -------------------------
TypeError例外トレースバック(最新の呼び出しの最後)
に
----> 1 c_deque.rotate( 'A')
TypeError例外:「STR」オブジェクトは整数として解釈することはできません
チームへの尾の要素の指定された番号の前に#、デフォルトは1
[30]中:c_deque.rotate()
[31]で:c_deque
OUT [31]:両端キュー([ 'D'、3、2、 'F'、1、 'E'、 ''、 'B'、 'C'、 'D'、 'B'、 'C'] )
#全体両端キューリバース
[32]中:c_deque.reverse()
[33]で:c_deque
OUT [33]:両端キュー([ 'C'、 'B'、 'D'、 'C'、 'B'、 ''、 'E'、1、 'F'、2、3、 'D'] )
[34]で:
カウンターには、詳細な使用しています
パイソン3.7.3(デフォルト、2019年3月28日、午前10時38分38秒)MSC v.1915 32ビット(インテル)]
「著作権」、「クレジット」または詳細については、「ライセンス」を入力し
IPython 7.4.0 - 強化された対話型のPython。タイプ「?」助けを求めます。
[1]:コレクションからカウンターをインポート
ユーザー= [ 'liu1'、 'liu2'、 'liu3'、 'liu1'、 'liu1'、 'liu2']:[2]で
統計データリストの#
[3]:users_counter =カウンタ(ユーザ)
[4]:users_counter
OUT [4]:カウンタ({ 'liu1':3 'liu2':2 'liu3':1})
#キャラクター統計、各文字が表示された回数
テスト=カウンター( 'abcddfdefadsfasdjfoaisdfjasdjfasdfasdfasdfgfhdf'):[5]で
テスト:[6]に
[6]アウト:
カウンタ({ 'A':8、
'B':1、
'C':1、
'D':11、
'F':11、
'E':1、
'S':7、
'J':3、
'O' 1、
'私は、':1、
'G':1、
'H':1})
#統計文字列の出現で2つの文字、方法1
test.update( 'aadfd'):[7]で
テスト:[8]に
[8]アウト:
カウンタ({ 'A':10、
'B':1、
'C':1、
'D':13、
'F':12、
'E':1、
'S':7、
'J':3、
'O' 1、
'私は、':1、
'G':1、
'H':1})無錫中絶どのくらいのお金http://www.bhnnk120.com/
#統計文字列の出現で2つの文字、方法2
TEST2 =カウンター( 'ABCDE'):[9]で
[10]中:test.update(TEST2)
テスト:[11]に
[11]アウト:
カウンタ({ 'A':11、
'B':2、
'C':2、
'D':14、
'F':12、
'E':2、
'S':7、
'J':3、
'O' 1、
'私は、':1、
'G':1、
'H':1})
#TOP nは統計的手法
[12]中:test.most_common(3)
OUT [12]:[( 'D'、14)、(F ''、12)、(A ''、11)]
OrderedDictは、詳細な使用しています
パイソン3.7.3(デフォルト、2019年3月28日、午前10時38分38秒)MSC v.1915 32ビット(インテル)]
「著作権」、「クレジット」または詳細については、「ライセンス」を入力し
IPython 7.4.0 - 強化された対話型のPython。タイプ「?」助けを求めます。
[1]において:コレクションからOrderedDictをインポート
user_dict = OrderedDict()[2]で
user_dict [ 'B'] = '劉':[3]で
user_dict [ ''] = 'liu1':[4]で
user_dict [ 'C'] = 'liu2':[5]で
[6]:user_dict
OUT [6]:OrderedDict([( 'B'、 '劉')、( 'A'、 'liu1')、( 'C'、 'liu2')])
#最後の項目を取り出します。
user_dict.popitem():[7]で
OUT [7]:( 'C'、 'liu2')
user_dict:[8]に
OUT [8]:OrderedDict([( 'B'、 '劉')、( 'A'、 'liu1')])
最後に使用されたシーンの優先度に#モバイル要素
user_dict.move_to_end( 'B'):[9]で
[10]で:user_dict
OUT [10]:OrderedDict([( 'A'、 'liu1')、( 'B'、 '劉')])
最後にポップ#キー、キーリターン対応する値
[11]中:user_dict.pop( 'B')
'劉':[11]アウト
[12]で:user_dict
OUT [12]:OrderedDict([( 'A'、 'liu1')])
ChainMapは、詳細な使用しています
パイソン3.7.3(デフォルト、2019年3月28日、午前10時38分38秒)MSC v.1915 32ビット(インテル)]
「著作権」、「クレジット」または詳細については、「ライセンス」を入力し
IPython 7.4.0 - 強化された対話型のPython。タイプ「?」助けを求めます。
[1]:コレクションからChainMapをインポート
dict1 = { 'A': '劉'、 'B': "liu1"} [2]で
dict2 = { "C": "liu3"、 'D' 'liu4'} [3]で
#最も一般的に使用される方法は、辞書にのみ最初のキーを取って、キーが繰り返された場合、辞書を複数接続することです
new_dict = ChainMap(dict1、dict2):[4]で
[5]:キー、new_dict.items(の値)のための:
...:印刷(キー、値)
...:
Cのliu3
dはliu4
劉
Bのliu1
#、dict2を変更しますので、キーとキーリピートdict1の1
dict2 = { "B": "liu3"、 'D' 'liu4'} [6]に
new_dict = ChainMap(dict1、dict2):[7]で
で[8]キー、new_dict.items(の値)のための:
...:印刷(キー、値)
...:
Bのliu1
dはliu4
劉
new_dict:[9]で
OUT [9]:ChainMap({ 'A': '劉'、 'B': 'liu1'}、{ 'B': 'liu3'、 'D': 'liu4'})
#リストのdict戻るが、元の辞書への唯一のポイントではなく、辞書の原本
new_dict.maps:[10]に
OUT [10]:[{ 'A': '劉'、 'B': 'liu1'}、{ 'B': 'liu3'、 'D': 'liu4'}]
new_dict.maps [0] [ ''] = 'liu333':[11]に
[12]で:new_dict
OUT [12]:ChainMap({ 'A': 'liu333'、 'B': 'liu1'}、{ 'B': 'liu3'、 'D': 'liu4'})
[13]で:dict1
OUT [13]:{ 'A': 'liu333'、 'B': 'liu1'}