我有多个列表包含,例如.
a = [['server_1', 'abc'], ['server_2', 'abc'], ['server_1', 'def']]
b = [['server_3', 'abc'], ['server_3', 'def'], ['server_4', 'abc']]
c = [['server_5', 'abc'], ['server_6', 'abc'], ['server_5', 'def']]
我想把数据转换成子列表,例如像下面:
OUTPUT:
a = [['server_1', 'abc', 'def'], ['server_2', 'abc']]
b = [['server_3', 'abc', 'def'], ['server_4', 'abc']]
c = [['server_5', 'abc', 'def'], ['server_6', 'abc']]
我想要做的是挑选出服务器名称,并将该列表附带的任何子数据添加到单个元素中,如上所示。
任何帮助都很感激
我尝试使用多个循环和if语句来比较列表中的前一个值和下一个值,但没有效果。
for part in repeating_list:
if part not in repeating_list:
new_list.append([part])
else:
pass (this should return it to sublist)
return new_list
4条答案
按热度按时间bzzcjhmw1#
您可以使用
collections.defaultdict
在一次传递中合并子列表输出
e1xvtsh32#
一个简单的方法是使用
dict
,将第一个元素存储为键,然后将第二个元素作为列表附加到值上。[[“服务器_1”,“abc”,“定义”],[“服务器_2”,“abc”]]
t40tm48m3#
解决这个问题的一个简单方法是使用两遍方法,这意味着我们首先获取服务器的名称,然后在第二遍中使用服务器提取数据。
下面是示例代码:
输出:
wwtsj6pe4#
我将添加一个键列表(
new_list_keys
),它可以跟踪索引,并且可以很容易地检查键(part[0]
)是否已经存在。如果没有,则将部分添加到new_list
,并将相关键添加到键列表。如果是,则将列表的其余部分连接到键的idx处的列表