Python【基礎第三編】
10630 ワード
setコレクション
s 1=set()集合の特徴:アクセス速度が速い 重複なし collectionsシリーズ(データ型コンテナモジュール)
一、カウンタ(Counter)
Counterは辞書タイプの補完であり,値の出現回数を追跡するために用いられる.
import collectionsインポートモジュール例:
二、秩序辞書(OrderedDict)
orderdDictは辞書タイプの補足であり、辞書要素が追加された順序例を覚えています.
三、デフォルト辞書(defaultdict)
defaultdictは辞書のタイプを補完し、辞書の値にデフォルトでタイプを設定します.
四、命名可能なメタグループ(namedtuple)
nametupleに基づいてtupleのすべての機能とその他の機能を含むタイプの例を作成できます.
双方向キュー
スレッドの安全な双方向キュー
例:
深浅コピーの原理
文字列と数値の場合、割り当て、浅いコピー、および深いコピーは、同じメモリアドレスを常に指すため、意味がありません.
深いコピー
メモリにすべてのデータを再作成する(最後のレイヤ、すなわちpython内部の文字列と数字の最適化を除外する)copy.copy()
浅いコピー
メモリに第1層のデータcopyのみを追加作成する.deepcopy()
関数#カンスウ#
一、背景
関数式プログラミングとプロセス向けプログラミングの違い:関数式:ある機能コードを関数にカプセル化し、後日繰り返し書く必要がなく、関数のみを呼び出すことができる オブジェクト向け:関数の分類とカプセル化により、「より速く、より強く...」
関数プログラミングで最も重要なのは、コードの再利用性と可読性を向上させることです.
二、定義と使用
関数の定義には、主に次のようなポイントがあります.def:関数を表すキーワード 関数名:関数の名前、後日関数名に基づいて関数 を呼び出す関数体:関数では、メールの送信、[12,22,38888,2]の最大数の算出など、一連の論理計算が行われる. パラメータ:関数体にデータを提供 戻り値:関数の実行が完了すると、呼び出し元にデータを返すことができます.
上記のポイントでは、パラメータと戻り値が重要です.
1、戻り値
関数は、実行が成功したかどうか、呼び出し元に値を返す必要がある機能ブロックです.
2、パラメータパラメータなし パラメータあり 一般パラメータ デフォルトパラメータ ダイナミックパラメータ
一般的なパラメータの例:(argvは関数mailのパラメータであり、1と2はmailのものである)
デフォルト・パラメータの例:(注意:デフォルト・パラメータはパラメータ・リストの最後に配置する必要があります)
パラメータの指定例:(パラメータの値を指定)
動的パラメータ例1:(*argsは実パラメータを1つのシーケンスとして処理し、**argsは実パラメータを1つの辞書として処理する)
ダイナミックパラメータの例2:(パラメータを実パラメータと同じタイプで受信する場合は、実パラメータの前に*または**を追加する必要があります.そうしないと、実パラメータは1つのメタグループとして処理されます)
Lambda式
Lambdaの存在意義は、単純な関数の簡潔な表現例です.
組み込み関数
公式サイト
Open関数
この関数はファイル処理に使用されます.
s 1=set()集合の特徴:
一、カウンタ(Counter)
Counterは辞書タイプの補完であり,値の出現回数を追跡するために用いられる.
import collectionsインポートモジュール例:
import collections
obj=collections.Counter("aaafffefwifewfewf")
print(obj)
Counter({'f': 7, 'a': 3, 'w': 3, 'e': 3, 'i': 1})
二、秩序辞書(OrderedDict)
orderdDictは辞書タイプの補足であり、辞書要素が追加された順序例を覚えています.
import collections
dic=collections.OrderedDict()
dic['k1']='v1'
dic['k2']='v2'
dic['k3']='v3'
print(dic)
:OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
三、デフォルト辞書(defaultdict)
defaultdictは辞書のタイプを補完し、辞書の値にデフォルトでタイプを設定します.
四、命名可能なメタグループ(namedtuple)
nametupleに基づいてtupleのすべての機能とその他の機能を含むタイプの例を作成できます.
import collections
MytupleClass=collections.namedtuple('MytupleClass',['x','y','z'])
obj=MytupleClass(11,22,33)
print(obj.x)
print(obj.y)
print(obj.z)
:11
22
33
双方向キュー
スレッドの安全な双方向キュー
例:
import collections
d=collections.deque()
d.append('1')
d.appendleft('0')
d.appendleft('1')
print(d)
r=d.count('1')
print(r)
:
deque(['1', '0', '1'])
2
深浅コピーの原理
文字列と数値の場合、割り当て、浅いコピー、および深いコピーは、同じメモリアドレスを常に指すため、意味がありません.
深いコピー
メモリにすべてのデータを再作成する(最後のレイヤ、すなわちpython内部の文字列と数字の最適化を除外する)copy.copy()
浅いコピー
メモリに第1層のデータcopyのみを追加作成する.deepcopy()
関数#カンスウ#
一、背景
関数式プログラミングとプロセス向けプログラミングの違い:
関数プログラミングで最も重要なのは、コードの再利用性と可読性を向上させることです.
二、定義と使用
def ( ):
...
...
関数の定義には、主に次のようなポイントがあります.
上記のポイントでは、パラメータと戻り値が重要です.
1、戻り値
関数は、実行が成功したかどうか、呼び出し元に値を返す必要がある機能ブロックです.
def ():
...
if :
return True
else:
return False
while True:
# , result
# , result ,
result = ()
if result == False:
, ...
2、パラメータ
一般的なパラメータの例:(argvは関数mailのパラメータであり、1と2はmailのものである)
def mail(argv):
n=123
n+=argv
print(n)
mail(1)
mail(2)
:124
125
デフォルト・パラメータの例:(注意:デフォルト・パラメータはパラメータ・リストの最後に配置する必要があります)
def mail(argv1,argv2=10):
n=123
n+=argv1
n+=argv2
print(n)
mail(1,2)
mail(1)
:126
134
パラメータの指定例:(パラメータの値を指定)
def show(a1,a2):
print(a1,a2)
show(a2=123,a1=999)
:999 123
動的パラメータ例1:(*argsは実パラメータを1つのシーケンスとして処理し、**argsは実パラメータを1つの辞書として処理する)
def show(*args,**args2):
print(args,type(args))
print(args2,type(args2))
show(11,22,33,44,a1='aaa',b1='bbb')
:(11, 22, 33, 44) <class 'tuple'>
{'a1': 'aaa', 'b1': 'bbb'} <class 'dict'>
ダイナミックパラメータの例2:(パラメータを実パラメータと同じタイプで受信する場合は、実パラメータの前に*または**を追加する必要があります.そうしないと、実パラメータは1つのメタグループとして処理されます)
def show(*args,**args2):
print(args,type(args))
print(args2,type(args2))
e=[11,22,33,44]
f={'a1':'aaa','b1':'bbb'}
show(e,f)
print("==================")
show(*e,**f)
:
([11, 22, 33, 44], {'a1': 'aaa', 'b1': 'bbb'}) <class 'tuple'>
{} <class 'dict'>
==================
(11, 22, 33, 44) <class 'tuple'>
{'a1': 'aaa', 'b1': 'bbb'} <class 'dict'>
Lambda式
Lambdaの存在意義は、単純な関数の簡潔な表現例です.
func=lambda a:a+1
ret=func(99)
print(ret)
:100
1、 a
2、 ,a+1, return
組み込み関数
公式サイト
Open関数
この関数はファイル処理に使用されます.
f=open('test.log','w',encoding='utf-8')
f.write('123456') # 123456 test.log
f.close()
f=open('test.log','r',encoding='utf-8')
print("==========")
print(f.read()) # test.log
f.close()
f=open('test.log','r',encoding='utf-8')
f.seek(1) #
print("==========")
print(f.tell()) #
print(f.read(2)) #
print(f.tell()) #
f.close()
:==========
123456
==========
1
23
3