繁体   English   中英

用于连接列表列表中每个列表的前2个元素的功能

[英]Function to join the first 2 elements from each list in a list of lists

我有这个列表清单:

listoflist = [['BOTOS', 'AUGUSTIN', 14, 'March 2016', 600, 'ALOCATIA'], ['HENDRE', 'AUGUSTIN', 14, 'February 2015', 600, 'ALOCATIA']]

^^这只是一个例子,我的列表列表中会有更多列表,格式相同。 这将是我想要的输出:

listoflist = [['BOTOS AUGUSTIN', 14, 'March 2016', 600, 'ALOCATIA'], ['HENDRE AUGUSTIN', 14, 'February 2015', 600, 'ALOCATIA']]

基本上在每个列表中,我想加入第一个索引,第二个索引在一个索引中形成一个全名,就像在示例中一样。 而且我需要一个函数用于将输入列表的人,我该如何以简单的方式执行此操作? (我不想要额外的lib)。 我使用python 3.5,非常感谢你的时间!

您可以遍历外部列表,然后加入前两个项的切片:

def merge_names(lst):
   for l in lst:
      l[0:2] = [' '.join(l[0:2])]

merge_names(listoflist)
print(listoflist)
# [['BOTOS AUGUSTIN', 14, 'March 2016', 600, 'ALOCATIA'], ['HENDRE AUGUSTIN', 14, 'February 2015', 600, 'ALOCATIA']]

这个简单的列表理解应该可以解决问题:

res = [[' '.join(item[0:2]), *item[2:]] for item in listoflist]

join列表中的前两个项目,并按原样附加其余项目。

你可以试试这个:

f = lambda *args: [' '.join(args[:2]), *args[2:]]

listoflist = [['BOTOS', 'AUGUSTIN', 14, 'March 2016', 600, 'ALOCATIA'], ['HENDRE', 'AUGUSTIN', 14, 'February 2015', 600, 'ALOCATIA']]

final_list = [f(*i) for i in listoflist]

输出:

[['BOTOS AUGUSTIN', 14, 'March 2016', 600, 'ALOCATIA'], ['HENDRE AUGUSTIN', 14, 'February 2015', 600, 'ALOCATIA']]

您也可以使用列表推导:

listoflist = [['BOTOS', 'AUGUSTIN', 14, 'March 2016', 600, 'ALOCATIA'], ['HENDRE', 'AUGUSTIN', 14, 'February 2015', 600, 'ALOCATIA']]

def f(lol):
  return [[' '.join(l[0:2])]+l[3:] for l in lol]

listoflist = f(listoflist)
print(listoflist)
# => [['BOTOS AUGUSTIN', 'March 2016', 600, 'ALOCATIA'], ['HENDRE AUGUSTIN', 'February 2015', 600, 'ALOCATIA']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM