maxliu06 发表于 2020-5-30 20:59:06

列表求助,,, 脑瓜痛了,

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条;

liuzhengyuan 发表于 2020-5-30 21:12:57

这个就相当于列表的嵌套呀

沐羽尘 发表于 2020-5-30 21:27:24

本帖最后由 沐羽尘 于 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:40:46

本帖最后由 永恒的蓝色梦想 于 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']]]]
>>>

maxliu06 发表于 2020-5-30 22:08:03

沐羽尘 发表于 2020-5-30 21:27
看了你的题突然有了想法
运行了一下,这个应该可行

谢谢 大侠,楼下这位写得好像更高大尚 。 {:5_109:}

maxliu06 发表于 2020-5-30 22:08:38

永恒的蓝色梦想 发表于 2020-5-30 21:40


谢谢

永恒的蓝色梦想 发表于 2020-5-30 22:10:59

maxliu06 发表于 2020-5-30 22:08
谢谢 大侠,楼下这位写得好像更高大尚 。

其实是会更快一点{:10_327:}
页: [1]
查看完整版本: 列表求助,,, 脑瓜痛了,