列挙&リスト生成式/器&反復器&4つの他のコンテナ
列挙
列挙(Enumerate) forループループ実装(インデックスと要素の取得) enumerate を使用
リスト生成形式(小さなリストを生成) [値ループ] [値ifサイクルif] example 右側加入判定(forループ中加入判定) 左加入判定(値は分岐形式で与える) .左右両方とも判定 が加わる.
リストジェネレータデータはリストであるが、全体ではなく、不活性モード生成、必要に応じて を生成する.形式 (値ループ) (値ifサイクルif) 取得
反復器 Iterable: Iterator:
4つの他の容器
Dequeは、前面から を挿入する.
NamedTuple名前付きtuple(インデックス名付き) 形式:受入変数1=namedtuple(‘メタグループ名’,[‘変数名1’,‘変数名2’))受入変数2=メタグループ名(値,値)#受入変数2.変数名1,受入変数2.変数名2呼び出し OrderedDict 辞書無秩序、OrderedDict秩序 odict=OderedDict([(‘a’,1),(‘b’,2),(‘c’,3)])print(odict)#秩序
odict=OderedDict()odict[‘a’]=1 odict[‘b’]=2 odict[‘c’]=3 print(odict)#秩序
列挙(Enumerate)
l = ['a','b','c']
for i , e in enumerate(l):
print(i , e)
for i , j in enumerate('abc'):
print(i , j)
# ,
リスト生成
["{}*{}".format(x,x) for x in range(1,11)]
[x for x in range(1,11) if x % 2 == 0]
[x if x > 5 else 0 for x in range(1,11) ]
[x if x > 5 else 0 for x in range(1,11) if x % 2 == 0]
リストジェネレータ
l = ("{}*{}".format(x,x) for x in range(1,11))
for i in range(1,10):
print(next(l),end = " ")
反復器
from collections import Iterable
print(isinstance(a,Iterable))# a ( , 、 、 、 、 )
from collections import Iterator
a_iter = iter(a)# iter( )
print(next(a_iter))# next( ) , value
4つの他の容器
Deque
from collections import deque
dq = deque(['b','c'])
dq.append('d')
dq.appendleft('a')
for x in deque:
print(x,end = " ") # a b c d
NamedTuple
from collections import namedtuple
person = namedtuple('person',['name','age'])
p = person('Julius',21)
print(p.age,p.name)
from collections import OrderedDict
odict=OderedDict()odict[‘a’]=1 odict[‘b’]=2 odict[‘c’]=3 print(odict)#秩序
### Counter
- , dict ,
- ```python
from collections import Counter
msg = 'talk is cheap show me the code show me the code'
letters = msg.split()
counter = Counter()
for le in letters:
counter[le] = counter[le] + 1
for k,v in counter.items():
print(k,v)