下面这句是存储系统测试中的用到的一句code。
1 具体code:
Curvetags = [{'tags': [(str(x), j) for j, x in enumerate(data['tags'])]}]
请大家先自己想想大概的作用和功能。
2 举例拆解:
3.1 假设: data = {‘tags’: [‘A’, ‘B’, ‘C’]}
3.2 那么: data['tags'] = [‘A’, ‘B’, ‘C’]
3.3 enumerate会把列表中的每个元素配对一个索引(从0开始)
所以,enumerate(data['tags']) = [(0, 'A'), (1, 'B'), (2, 'C')]
3.4 for j, x in 这种写法叫解包(unpacking),把上面的元组拆开。
j=0, x='A'
j=1, x='B'
j=2, x='C'
3.5 每次循环构造成一个新的元组str(x), j
('A', 0)
('B', 1)
('C', 2)
3.6 把上面的结果放到新的列表:
[('A', 0),('B', 1),('C', 2)]
3.7 最终的结果是:
Curvetags = [{'tags': [(str(x), j) for j, x in enumerate(data['tags'])]}]
||
V
Curvetags = [{‘tags’: ('A', 0),('B', 1),('C', 2)}]
3 一句话解释:
把每个标签值转换成字符串,再和它的索引配对,组成一个新的(值、索引)的元组列表,最后放到字典里。
欢迎关注微信公众号:大滨读书健身(全网同名)
974

被折叠的 条评论
为什么被折叠?



