如何通过重复元素“model”滑动列表
list1=[{u'model': (u'AAAA', '')}, {u'des': (u'xx', '')}, {u'select': (u'1331', u'1')}, {u'select': (u'1332', u'2')}, {u'derived': (u'3444', u'2')}, {u'derived': (u'3445', u'1')}, {u'end': ('', '')}, {u'model': (u'BBBB', '')}, {u'des': (u'yy', '')}, {u'select': (u'1331', u'1')}, {u'select': (u'1332', u'2')}, {u'derived': (u'3444', u'2')}, {u'derived': (u'3445', u'1')}, {u'end': ('', '')}
for i, dictElem in enumerate (list1):
print i, dictElem
0 {u'model': (u'AAAA', '')}
1 {u'des': (u'xx', '')}
2 {u'select': (u'1331', u'1')}
3 {u'select': (u'1332', u'2')}
4 {u'derived': (u'3444', u'2')}
5 {u'derived': (u'3445', u'1')}
6 {u'end': ('', '')}
7 {u'model': (u'BBBB', '')}
8 {u'des': (u'yy', '')}
9 {u'select': (u'1331', u'1')}
10 {u'select': (u'1332', u'2')}
11 {u'derived': (u'3444', u'2')}
12 {u'derived': (u'3445', u'1')}
13 {u'end': ('', '')}
我想得到一个新的列表1,如下所示:
newlist1=[
[{u'model': (u'AAAA', '')}, {u'des': (u'xx', '')}, {u'select': (u'1331', u'1')}, {u'select': (u'1332', u'2')}, {u'derived': (u'3444', u'2')}, {u'derived': (u'3445', u'1')}, {u'end': ('', '')}],
[ {u'model': (u'BBBB', '')}, {u'des': (u'yy', '')}, {u'select': (u'1331', u'1')}, {u'select': (u'1332', u'2')}, {u'derived': (u'3444', u'2')}, {u'derived': (u'3445', u'1')}, {u'end': ('', '')}]
]
从“model”
到“end”
的元素将成为新元素
稍微短一点
以
list1
作为输出:
这个可以,我用你的单子测试过了。 这有点混乱,但是dict/列表的混合有时会很混乱
编辑: 当您遍历这个列表时,您将得到每个索引处的dict。每次dict的键是u'model'时,您创建一个新列表,并将这个词汇表和下一个词汇表存储在新列表中。不需要“结束”。你知道吗
这里有一个简单的方法。它依赖于sentinel“end”字典的存在,例如
{u'end': ('', '')}
,这似乎是对所示数据的有效假设。你知道吗相关问题 更多 >
编程相关推荐