找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2277|回复: 5

[求助] python如何操作这个list,求助大神!

1

主题

5

帖子

5

积分

贫民

积分
5
stecheer 发表于 2019-2-13 14:58:34 | 显示全部楼层 |阅读模式
本帖最后由 stecheer 于 2019-2-13 15:20 编辑

有这样一个list1=[[a,1],[a,2],[a,4],[a,10],[b,2],[b,4],[b,7],[c,1],[c,3],[c,11],[c,14]......],怎样整理成list2=[a,b,c......]和list3=[[1,2,4,10],[2,4,7],[1,3,11,14]......]这种形式的list,或者list3的索引为list2


    list1=[[a,1],[a,2],[a,4],[a,10],[b,2],[b,4],[b,7],[c,1],[c,3],[c,11],[c,14]......]
    list2=[]
    list3=[]
    i=0
    d=0
    for i in range(len(list1)-1):
        if list1[0]==list1[i+1][0]:
            list3.append(list1[1])
            i=i+1
        elif list1[0]!=list1[i+1][0]:
            list2.append(list1[0])
            i=i+1
         

这样得出的list3=[1,2,4,10,2,4,7,1,3,11,14......]  求大神指点

回复

使用道具 举报

0

主题

11

帖子

11

积分

贫民

积分
11
zhouxiong 发表于 2019-2-15 08:19:47 | 显示全部楼层
字典生成式
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

贫民

积分
14
wjb986555360 发表于 2019-2-15 21:45:40 | 显示全部楼层
解答
list1 = [['a',1], ['a',2], ['a',4], ['a',10], ['b',2], ['b',4], ['b',7], ['c',1], ['c',3], ['c',11], ['c',14]]
list2 = []
list3 = []
list4=[]
i = 0
d = 0
k=0
n=0
list2.append(list1[0][0])
mm=list1[0][0]
for i in range(0,len(list1)):
    if list1[i][0] == mm:
       list4.append(list1[i][1])
    elif list1[i][0] != mm:
        list2.append(list1[i][0])
        mm=list1[i][0]
        list3.append(list4)
        k=k+1
        list4=[]
        list4.append(list1[i][1])
list3.append(list4)

print(list2)
print(list3)
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2019-2-16 11:00:18 | 显示全部楼层
from itertools import groupby
list1=[['a',1],['a',2],['a',4],['a',10],['b',2],['b',4],['b',7],['c',1],['c',3],['c',11],['c',14]]
list2=[];list3=[]
def get_el(mylist):
    temp=[]
    for el in mylist:
        temp.append(el[1])
    return temp

for key,group in groupby(list1,lambda x: x[0]):
    list2.append(key)
    list3.append(get_el(list(group)))

回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
better莫 发表于 2019-6-20 16:23:01 | 显示全部楼层
python3.6
9ef8d6ecc2571f6bdb3c80945fbcbd1.png
回复

使用道具 举报

1

主题

16

帖子

16

积分

贫民

积分
16
aqiwer 发表于 2019-6-25 13:32:53 | 显示全部楼层
本帖最后由 aqiwer 于 2019-6-25 14:05 编辑
  1. list1=[['a',1],['a',2],['a',4],['a',10],['b',2],['b',4],['b',7],['c',1],['c',3],['c',11],['c',14]]
  2. list2=[]
  3. list3=[]

  4. for li1 in list1:
  5.     if li1[0] not in list2:
  6.         list2.append(li1[0])

  7. for li2 in list2:
  8.     li = []
  9.     for li3 in list1:
  10.         if li3[0] == li2:
  11.             li.append(li3[1])
  12.     list3.append(li)
  13.         
  14. print (list2)
  15. print (list3)

  16. '''
  17. >>> %Run test.py
  18. ['a', 'b', 'c']
  19. [[1, 2, 4, 10], [2, 4, 7], [1, 3, 11, 14]]
  20. '''
复制代码
萌新一枚,这样是否可行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表