列表求助,,, 脑瓜痛了,
li = [['张XX', ['周1', '语文', '早班', 'xxx', 'YYY']],
['张XX', ['周2', '数学', '中班', 'xxx', 'YYY']],
['张XX', ['周3', '语文', '中班', 'xxx', 'YYY']],
['张XX', ['周4', '体育', '晚班', 'xxx', 'YYY']],
['张XX', ['周5', '语文', '中班', 'xxx', 'YYY']],
['张XX', ['周6', '音乐', '早班', 'xxx', 'YYY']],
['张XX', ['周7', '语文', '中班', 'xxx', 'YYY']],
['高美女', ['周1', '高数', '早班', 'xxx', 'YYY']],
['高美女', ['周2', '英文', '晚班', 'xxx', 'YYY']],
['高美女', ['周3', '体育', '早班', 'xxx', 'YYY']],
['高美女', ['周4', '音乐', '晚班', 'xxx', 'YYY']],
['高美女', ['周5', '比赛', '中班', 'xxx', 'YYY']],
['高美女', ['周6', '先锋', '晚班', 'xxx', 'YYY']],
['高美女', ['周7', '逛街', '早班', 'xxx', 'YYY']]
]
我现在有这么一个列表。 我要把它子元素中,第1个元素相同的, 把它再合成一个列表。
效果如下
new_list = [ [ '张XX' ,[ ['周1', '语文', '早班', 'xxx', 'YYY'],
['周2', '数学', '中班', 'xxx', 'YYY'],
['周3', '语文', '中班', 'xxx', 'YYY'],
['周4', '体育', '晚班', 'xxx', 'YYY'],
['周5', '语文', '中班', 'xxx', 'YYY'],
['周6', '音乐', '早班', 'xxx', 'YYY'],
['周7', '语文', '中班', 'xxx', 'YYY']
] ,
['高美女' ,[ ['周1', '高数', '早班', 'xxx', 'YYY'],
['周2', '英文', '晚班', 'xxx', 'YYY'],
['周3', '体育', '早班', 'xxx', 'YYY'],
['周4', '音乐', '晚班', 'xxx', 'YYY'],
['周5', '比赛', '中班', 'xxx', 'YYY'],
['周6', '先锋', '晚班', 'xxx', 'YYY'],
['周7', '逛街', '早班', 'xxx', 'YYY']
]
]
有什么办法可以弄这样??求教; 原列表中,相同人名的数据, 不一定是固定7条记录, 有可能是6条 或5条; 这个就相当于列表的嵌套呀 本帖最后由 沐羽尘 于 2020-5-30 21:36 编辑
看了你的题突然有了想法
li = [
['张XX', ['周1', '语文', '早班', 'xxx', 'YYY']],
['张XX', ['周2', '数学', '中班', 'xxx', 'YYY']],
['张XX', ['周3', '语文', '中班', 'xxx', 'YYY']],
['张XX', ['周4', '体育', '晚班', 'xxx', 'YYY']],
['张XX', ['周5', '语文', '中班', 'xxx', 'YYY']],
['张XX', ['周6', '音乐', '早班', 'xxx', 'YYY']],
['张XX', ['周7', '语文', '中班', 'xxx', 'YYY']],
['高美女', ['周1', '高数', '早班', 'xxx', 'YYY']],
['高美女', ['周2', '英文', '晚班', 'xxx', 'YYY']],
['高美女', ['周3', '体育', '早班', 'xxx', 'YYY']],
['高美女', ['周4', '音乐', '晚班', 'xxx', 'YYY']],
['高美女', ['周5', '比赛', '中班', 'xxx', 'YYY']],
['高美女', ['周6', '先锋', '晚班', 'xxx', 'YYY']],
['高美女', ['周7', '逛街', '早班', 'xxx', 'YYY']]
]
name = []
new_list = []
for each in li:
if each in name:#如果head在name里,就把其后面的信息加到new_list里
for index in new_list:
if index == each:
index.append(each)
else :
name.append(each)#如果head不在name里,就把其添加到name里
new_list.append(each)#并把其后面的信息加到new_list里
#打印列表
for each in new_list:
for i in each:
print(i)
运行了一下,这个应该可行 本帖最后由 永恒的蓝色梦想 于 2020-5-30 21:50 编辑
def function(array):
result={}
for name,values in array:
try:
result.append(values)
except KeyError:
result=
return [for i,j in result.items()]>>> li = [
['张XX', ['周1', '语文', '早班', 'xxx', 'YYY']],
['张XX', ['周2', '数学', '中班', 'xxx', 'YYY']],
['张XX', ['周3', '语文', '中班', 'xxx', 'YYY']],
['张XX', ['周4', '体育', '晚班', 'xxx', 'YYY']],
['张XX', ['周5', '语文', '中班', 'xxx', 'YYY']],
['张XX', ['周6', '音乐', '早班', 'xxx', 'YYY']],
['张XX', ['周7', '语文', '中班', 'xxx', 'YYY']],
['高美女', ['周1', '高数', '早班', 'xxx', 'YYY']],
['高美女', ['周2', '英文', '晚班', 'xxx', 'YYY']],
['高美女', ['周3', '体育', '早班', 'xxx', 'YYY']],
['高美女', ['周4', '音乐', '晚班', 'xxx', 'YYY']],
['高美女', ['周5', '比赛', '中班', 'xxx', 'YYY']],
['高美女', ['周6', '先锋', '晚班', 'xxx', 'YYY']],
['高美女', ['周7', '逛街', '早班', 'xxx', 'YYY']]
]
>>> newlist=function(li)
>>> newlist
[['张XX', [['周1', '语文', '早班', 'xxx', 'YYY'], ['周2', '数学', '中班', 'xxx', 'YYY'], ['周3', '语文', '中班', 'xxx', 'YYY'], ['周4', '体育', '晚班', 'xxx', 'YYY'], ['周5', '语文', '中班', 'xxx', 'YYY'], ['周6', '音乐', '早班', 'xxx', 'YYY'], ['周7', '语文', '中班', 'xxx', 'YYY']]], ['高美女', [['周1', '高数', '早班', 'xxx', 'YYY'], ['周2', '英文', '晚班', 'xxx', 'YYY'], ['周3', '体育', '早班', 'xxx', 'YYY'], ['周4', '音乐', '晚班', 'xxx', 'YYY'], ['周5', '比赛', '中班', 'xxx', 'YYY'], ['周6', '先锋', '晚班', 'xxx', 'YYY'], ['周7', '逛街', '早班', 'xxx', 'YYY']]]]
>>> 沐羽尘 发表于 2020-5-30 21:27
看了你的题突然有了想法
运行了一下,这个应该可行
谢谢 大侠,楼下这位写得好像更高大尚 。 {:5_109:} 永恒的蓝色梦想 发表于 2020-5-30 21:40
谢谢
maxliu06 发表于 2020-5-30 22:08
谢谢 大侠,楼下这位写得好像更高大尚 。
其实是会更快一点{:10_327:}
页:
[1]