はじめに
forをできるだけ書かずに縛りプレイやってみました。「読みにくい」とか「PEP8がー」とか知りません。
(※思いついたら随時更新します。)
同じ長さのリストで辞書を作る
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = [1, 2, 3, 4, 5]
result = {}
for key, value in zip(list1, list2):
result[key] = value
↓
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = [1, 2, 3, 4, 5]
result = dict(zip(list1, list2))
パースして辞書を作る
val1 = 'x=1;y=2;z=3'
val2 = 'a:5,b:1,c:8'
result = {}
for v in val1.split(';'):
key, value = v.split('=')
result[key] = value
for v in val2.split(','):
key, value = v.split(':')
result[key] = value
↓
val1 = 'x=1;y=2;z=3'
val2 = 'a:5,b:1,c:8'
result = {
**dict(map(lambda x: x.split('='), val1.split(';'))),
**dict(map(lambda x: x.split(':'), val2.split(',')))
}
リストからn個ずつ要素を取り出してリストを作る
list1 = [1, 2, 3, 4, 5, 6]
n = 2
result = []
for i in range(0, len(list1), n):
result.append(list1[i:i+n])
↓
list1 = [1, 2, 3, 4, 5, 6]
n = 2
result = [*zip(*[iter(list1)]*n)]