python初級データ構造(list,tuple,dict)(補充ノート、初級)
2958 ワード
List:
プッシュ構造リスト(List Compreshension)、例:
スライスlist[start:stop:step]
sortとsorted:sortはlist(in-place)を変更し、sortedはソートされたリスト(return values)を返し、元のものは変更しない.パラメータにはsequenとkeyがあり、key値は(...)を行ないます.
Warning:return values vs. in-place change
mapマッピング(マルチペアマルチ)
reduce化簡略化(多対少)
以下にx 1とx 2でfunc操作を行い、x 3 func操作を行い、x 4 func操作を行う
ろ過(多対少)
リストの各要素に対してfunc操作を行い、値がTrueの場合は保持します.
------------------------------------------------------------------------------------------------
.pop(_)操作はreturn valuesとin-placeの両方です.
join:
------------------------------------------------------------------------------------------------
割り当て、コピー、copy
直接値を割り当て、コピーを参照し、メモリ内で実際に同じオブジェクトを指します.
aスライスはb,bに与えられ,aは変化しない
deep copy(完全コピー、相互影響なし)
shallow copy:単純なデータ(可変オブジェクト)の場合は、 に影響を与えることなくコピーされます.複雑なオブジェクト(可変オブジェクト)に対しては、相互影響 がある.
Dict
dict is mappingは空間で時間を変えて、キャッシュに適しています
get
setdefault()
キャッシュの概念
例:
packing and unpacking
zip
2018/5/4:授業ノート
プッシュ構造リスト(List Compreshension)、例:
list = [x*2 for x in lm]
スライスlist[start:stop:step]
sortとsorted:sortはlist(in-place)を変更し、sortedはソートされたリスト(return values)を返し、元のものは変更しない.パラメータにはsequenとkeyがあり、key値は(...)を行ないます.
list.sort()
sorted(list1)
sorted(dict, key=lambda x:dict[x])# value
sorted(dict) # key
Warning:return values vs. in-place change
mapマッピング(マルチペアマルチ)
map(func, seq) # , for
list(map(func, seq)) # list
reduce化簡略化(多対少)
以下にx 1とx 2でfunc操作を行い、x 3 func操作を行い、x 4 func操作を行う
reduce(func, [x1,x2,x3,x4])
ろ過(多対少)
リストの各要素に対してfunc操作を行い、値がTrueの場合は保持します.
filter(func, list)
------------------------------------------------------------------------------------------------
.pop(_)操作はreturn valuesとin-placeの両方です.
join:
delimeter = '*'
s = delimeter.join(t) # delimeter t
------------------------------------------------------------------------------------------------
割り当て、コピー、copy
直接値を割り当て、コピーを参照し、メモリ内で実際に同じオブジェクトを指します.
>>> a = [1,2,3]
>>> b = a
>>> b is a
True
>>> b[0] = 100
>>> a
[100, 2, 3]
aスライスはb,bに与えられ,aは変化しない
>>> a = [1,2,3,4]
>>> b = a[:]
>>> b[0]= 100
>>> a
[1, 2, 3, 4]
>>> b
[100, 2, 3, 4]
deep copy(完全コピー、相互影響なし)
>>> import copy
>>> a = [1,2,3,4]
>>> b = copy.deepcopy(a)
>>> b
[1, 2, 3, 4]
>>> b[0] = 100
>>> a
[1, 2, 3, 4]
>>> b
[100, 2, 3, 4]
>>> a[1] = 200
>>> b
[100, 2, 3, 4]
shallow copy:
>>> import copy
>>> a = [1,2,[1,2,3]]
>>> b = copy.copy(a)
>>> b
[1, 2, [1, 2, 3]]
>>> b[0] = 100
>>> a
[1, 2, [1, 2, 3]]
>>> a[1] = 200
>>> b
[100, 2, [1, 2, 3]]
>>> b[2] = 3
>>> b
[100, 2, 3]
>>> a
[1, 200, [1, 2, 3]]
Dict
dict is mappingは空間で時間を変えて、キャッシュに適しています
get
>>> a.get('age', 10)
18
>>> a = {'name': 'nn'}
>>> a.get('age', 10)
10
>>> a
{'name': 'nn'}
>>> b = {'name': 'nn', 'age': 18}
>>> b.get('age', 18)
18
>>> b
{'name': 'nn', 'age': 18}
setdefault()
キャッシュの概念
例:
known = {0:0, 1:1}
def fib(n):
if n in known:
return known[n]
res = fib(n-1) + fib(n-2)
known[n] = res
return res
packing and unpacking
zip
2018/5/4:授業ノート