在python中对两个列表进行分类并进行相应排列
我正在处理两个列表,如下所示:在python中对两个列表进行分类并进行相应排列,python,Python,我正在处理两个列表,如下所示: list_a = [x,y,z,.....] list_b = [xa,xb,xc,xd,xe,ya,yb,yc,yd,za,zb,zc,zd,ze,zf] 我试图做到的是,在整理数据的同时制作更多列表,如下所示: list_x = [x,xa,xb,xc,xd,xe] list_y = [y,ya,yb,yc,yd] list_z = [z,za,zb,zc,zd,ze,zf] 现在,如果我使用如下循环: final_list=[] fo
list_a = [x,y,z,.....]
list_b = [xa,xb,xc,xd,xe,ya,yb,yc,yd,za,zb,zc,zd,ze,zf]
我试图做到的是,在整理数据的同时制作更多列表,如下所示:
list_x = [x,xa,xb,xc,xd,xe]
list_y = [y,ya,yb,yc,yd]
list_z = [z,za,zb,zc,zd,ze,zf]
现在,如果我使用如下循环:
final_list=[]
for item in list_a:
for value in list_b:
if value[0] == item:
print item, value
它过滤数据,但无法达到所需的格式。请你们对此发表一些有价值的评论。
谢谢您可以使用以下代码:
list_a = ['x','y','z']
list_b = ['xa','xb','xc','xd','xe','ya','yb','yc','yd','za','zb','zc','zd','ze','zf']
print [(key, [_ for _ in list_b if key == _[0]]) for key in list_a]
它提供了一个元组列表,第一个条目是单个字母,第二个条目是列表
或者不使用元组也可以这样做:
print [[key] + [_ for _ in list_b if key == _[0]] for key in list_a]
输出:
[['xa', 'xb', 'xc', 'xd', 'xe'], ['ya', 'yb', 'yc', 'yd'], ['za', 'zb', 'zc', 'zd', 'ze', 'zf']]
[('x', ['xa', 'xb', 'xc', 'xd', 'xe']), ('y', ['ya', 'yb', 'yc', 'yd']), ('z', ['za', 'zb', 'zc', 'zd', 'ze', 'zf'])]
或者更确切地说:
print [(y,[x for x in list_b if x.startswith(y)]) for y in list_a]
输出:
[['xa', 'xb', 'xc', 'xd', 'xe'], ['ya', 'yb', 'yc', 'yd'], ['za', 'zb', 'zc', 'zd', 'ze', 'zf']]
[('x', ['xa', 'xb', 'xc', 'xd', 'xe']), ('y', ['ya', 'yb', 'yc', 'yd']), ('z', ['za', 'zb', 'zc', 'zd', 'ze', 'zf'])]
不是100%关于这种格式,但是你可以使用列表列表
list_a = ["x","y","z"]
list_b = ["xa","xb","xc","xd","xe","ya","yb","yc","yd","za","zb","zc","zd","ze","zf"]
final_list = []
for item in list_a:
item_list = [item]
for value in list_b:
if value[0] == item:
item_list.append(value)
final_list.append(item_list)
print final_list
它回来了
[['x','xa','xb','xc','xd','xe'],['y','ya','yb','yc','yd'],['z','za','zb','zc','zd','ze','zf']您可以通过使用和遵循功能方法: 需要注意的是,如果
list_b
没有排序,则传递给groupby()
的参数应该是排序的(list_b)
作为补充说明,您可以通过简单地将可选参数
key=itemgetter(0)
更改为key=lambda s:s:s[0]
来摆脱模块操作符
,您尝试过如何格式化结果?正如我尝试使用嵌套循环一样,我得到的结果是:[x,xa][x,xb][x,xc][x,xd]等等。我不清楚如何根据list\u a
和append/extend
中的项目创建列表,以获得所需的格式。关于这方面的建议会很有帮助。读一本教程吧!不完全是他想要的,但也可以。谢谢你的回答。人们把所有特定的ans都放进去,我jst想要一个类似于我的数据的意见。这很有帮助,没问题。很高兴它有帮助!