詳細なPythonのコレクションモジュール

  以下のモジュールを含むコレクション:

  [ '両端キュー'、 'defaultdict'、 'namedtuple'、 'UserDict'、 'のUserList'、

  'のUserString'、 'カウンター'、 'OrderedDict'、 'C​​hainMap']

  詳細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'}


おすすめ

転載: blog.51cto.com/14335413/2431291