python進級学習——独学ノート
34484 ワード
目次初心を学ぶ 第一章 リスト、辞書、コレクションにおいて必要なデータをフィルタする .リスト:リスト解析がより良い 試験データ を生成する. fliter関数 を使用リスト解析 辞書 試験データ を生成する.辞書解析 集合 試験データ を生成する.集合解析 は、データの可読性を向上させるためにメタグループに命名された である.定義定数代替列挙量 試験データ を生成する.定数 を定義する namedtuple(tupleの内蔵サブクラス) を使用工場 の導入と生成 namedtupleとアクセス を生成する統計シーケンスの要素の出現回数 反復積算法 試験データ を生成する.統計結果を格納辞書 を生成する.反復累積 Collections.Counter 構築パッケージクラスCounrer:このcounterにはすでに統計結果が あります. most_commentのサブメソッドを使用:出現頻度が最も高い3つのリスト を見つける.辞書のカスタムソート 内蔵関数sort 試験データ を作成する zip を使用はlambda関数 に結合する複数の辞書の共通キーを見つける 試験データ を生成する.用&公共健 を求めますは辞書に対して秩序を保つ:辞書 を入力順に記録する. collections.OrderedDict ユーザの履歴(有限ログ) を実現 collections.deque は、記録保存および読み出し を実現する.第2章 反復オブジェクトの生成と順方向反復 collectionsのiteratableとiterator を使用ジェネレータ関数 ジェネレータ関数を含むクラスのパッケージ 順方向反復および逆方向反復 case説明 用例説明 反復器のスライス操作 itertools.islice 並列反復および直列反復 zip関数を使用して、マージ後の反復 itertools.chian を使用第三章 複数の区切り文字処理文字列 用re.split 文字列接合 文字列フォーマット:左中右 文字列削除指定内容 第四章 csvデータの読み書き 読み書きjsonデータ 初心を学ぶ
規範学習pythonは、後続の機械学習に基礎を築くと考えている.
第一章
リスト、辞書、コレクションで必要なデータをフィルタ
リスト:リストの解析がより良い
テストデータの生成
fliter関数の使用
リスト解析
辞書
テストデータの生成
ディクショナリ解析
しゅうごう
テストデータの生成
集合解析
データの可読性を向上させるためにメタグループに名前を付ける
データ構造は固定され、メタグループが使用されます.しかしindexはメタグループの内容にアクセスし、非常に不便です.
列挙の代わりに定数を定義する
テストデータの生成
定数の定義
namedtuple(tupleの内蔵サブクラス)の使用
工場のインポートと生成
namedtupleの生成とアクセス
統計シーケンス内の要素の出現回数
反復積算法
テストデータの生成
統計を格納する辞書の生成
反復累積
Collections.Counter
パッケージクラスCounrerの構築:このcounterには統計結果があります
most_commentのサブメソッドを使用する:出現頻度が最も高い3つのリストを見つける
辞書のカスタムソート
内蔵関数sort
テストデータの作成
zipの使用
コンビネーションlambda関数
複数の辞書の共通キーを見つける
テストデータの生成
公共の健を求めます
ディクショナリの順序付け:入力順にディクショナリを記録します.
collections.OrderedDict
ユーザーの履歴の実装(有限ログ)
collections.deque
記録の保存と読み取りを実現
保存#ホゾン#
読み取り
第二章
反復オブジェクトの生成と順方向反復
反復可能オブジェクト(list,string)から反復器オブジェクトiter()を得る
collectionsのiteratableとiteratorの使用
skip
ジェネレータ関数
ジェネレータ関数を含むクラスのパッケージ
テストプログラム
順方向反復と逆方向反復
ケース説明
実際には、順方向反復にはインタフェース__init_()が必要であり、逆方向反復にはインタフェース__reversed_()が必要である.
使用例の説明
浮動小数点ジェネレータ
反復器のスライス操作
itertools.islice
並列反復と直列反復
zip関数を使用して、マージ後の反復
itertools.chianの使用
第三章
複数の区切り文字列
string.splitで区切り文字が1つしか含まれない場合
re.splitで
文字列の結合
文字列フォーマット:左中右
文字列削除指定
第四章
csvデータの読み書き
jsonデータの読み書き
規範学習pythonは、後続の機械学習に基礎を築くと考えている.
第一章
リスト、辞書、コレクションで必要なデータをフィルタ
リスト:リストの解析がより良い
テストデータの生成
from random import randint
data = [randint(-10,10) for _ in range(10)]
fliter関数の使用
for i in ( filter(lambda x : x >=0,data)):
print(i)
リスト解析
[x for x in data if x>=0]
辞書
テストデータの生成
from random import randint
dict = {x :randint(60,100)for x in range(1,21)}
ディクショナリ解析
{k:v for k,v in dict.items() if v>90 }
しゅうごう
テストデータの生成
from random import randint
s = set ( [ randint(-10,10) for _ in range(10)] )
集合解析
{x for x in s if x>0}
データの可読性を向上させるためにメタグループに名前を付ける
データ構造は固定され、メタグループが使用されます.しかしindexはメタグループの内容にアクセスし、非常に不便です.
列挙の代わりに定数を定義する
テストデータの生成
student = ('Jax',20,'male','201764681188')
定数の定義
NAME,AGE,SEX = 0,1,2
student[NAME]
namedtuple(tupleの内蔵サブクラス)の使用
工場のインポートと生成
from collections import namedtuple
Student = namedtuple('Student',['name','age','male','ID'])
namedtupleの生成とアクセス
s = Student('jax',16,'m','2017')
s.name
統計シーケンス内の要素の出現回数
反復積算法
テストデータの生成
data = [ randint(0,20) for _ in range(30)]
統計を格納する辞書の生成
ans = dict.fromkeys(data,0)
反復累積
ans = dict.fromkeys(data,0)
for x in data:
ans[x]+=1
Collections.Counter
パッケージクラスCounrerの構築:このcounterには統計結果があります
c2 = Counter(data)
most_commentのサブメソッドを使用する:出現頻度が最も高い3つのリストを見つける
c2.most_comment(3)
辞書のカスタムソート
内蔵関数sort
テストデータの作成
from random import randint
dict = {x:randint(60,100) for x in 'xyzabc'}
zipの使用
sorted(zip(dict.values(),dict.keys()))
コンビネーションlambda関数
sorted(dict.items(),key = lambda x : x[1])
複数の辞書の共通キーを見つける
テストデータの生成
round1 = {x:randint(1,4) for x in sample('abcdefg',randint(3,6))}
round2 = {x:randint(1,4) for x in sample('abcdefg',randint(3,6))}
round3 = {x:randint(1,4) for x in sample('abcdefg',randint(3,6))}
公共の健を求めます
round1.keys()&round2.keys()&round3.keys()
ディクショナリの順序付け:入力順にディクショナリを記録します.
collections.OrderedDict
from collections import OrderedDict
d = OrderedDict()
d[key] = value;
ユーザーの履歴の実装(有限ログ)
collections.deque
from collections import deque
q = deque([],queueSize)
q.apend(record)
記録の保存と読み取りを実現
保存#ホゾン#
import pickle
pickle.dump(q,open('history','w'))
読み取り
q2 = pickle.load(open('history'))
第二章
反復オブジェクトの生成と順方向反復
反復可能オブジェクト(list,string)から反復器オブジェクトiter()を得る
collectionsのiteratableとiteratorの使用
skip
ジェネレータ関数
ジェネレータ関数を含むクラスのパッケージ
class PrimeNumbers:
def __init__(self,start,end):
self.start = start
self.end = end
def isPrimeNum(self,k):
if k<2:
return False
for i in range(2,k):
if k%i == 0:
return False
return True
# __iter__ , PrimeNumbers
def __iter__(self):
for k in range(self.start,self.end+1):
if self.isPrimeNum(k):
yield k
テストプログラム
for x in PrimeNumbers(1,100):
print(x)
順方向反復と逆方向反復
ケース説明
from collections import Iterable,Iterator
l = [1,2,3,4,5]
#
for x in iter(l):
print(x)
#
for x in reversed(l):
print(x)
実際には、順方向反復にはインタフェース__init_()が必要であり、逆方向反復にはインタフェース__reversed_()が必要である.
使用例の説明
浮動小数点ジェネレータ
class FloatRange:
def __init__(self,start,end,step=0.1):
self.start = start
self.end = end
self.step = step
def __iter__(self):
t = self.start
while t <= self.end:
yield t
t +=self.step
def __reversed__(self):
t = self.end
while t >= self.start:
yield t
t -=self.step
for i in FloatRange(1.0,4.0,0.5):
print(i)
print('-'*6)
for i in reversed( FloatRange(1.0,4.0,0.5) ):
print(i)
反復器のスライス操作
itertools.islice
#islice f
from itertools import islice
#f , none
for line in islice(f,100,300):
print(line)
並列反復と直列反復
zip関数を使用して、マージ後の反復
#zip ,for
for c,m,e in zip(chinese,math,english):
print(...)
itertools.chianの使用
for x in chain([1,2,3,4],[5,6,7]):
print(...)
第三章
複数の区切り文字列
string.splitで区切り文字が1つしか含まれない場合
re.splitで
s = "abc,ef;gi"
import re
print(re.split(r'[,;]+',s))
文字列の結合
''.join(['abc','123','45'])
# join ,
list = ['abc',123,45]
''.join(str(x) for x in list)
文字列フォーマット:左中右
'abc'.ljust(20)
文字列削除指定
#
s = ' abc\t\r 123 '
s.strip()
#s = '---abc 123+++'
#s.strip(r'-+')
#
s[:3]+s[5:]
#replace
s.replace(' ','')
# re.sub
import re
re.sub('[\t\r]','',s)
第四章
csvデータの読み書き
import csv
rf = open('1.csv','rb')
#reader 1.csv
reader = csv.rader(rf)
wf = open('2.csv','wb')
writer = csv.writer(wf)
weiter.writerow(...)
jsonデータの読み書き
#python->jason
l = ['1','2',"abc"]
j1 = json.dumps(l)
#jason->python
l2 = jason.loads(j1)