我正在尝试获取列表中相同的第一个元素,并将其指定为列表的第一个元素。我被告知可以通过使用collections模块中的defaultdict来完成,但是有没有一种方法可以不用collections库来完成这项工作
我所拥有的:
mapping = [['Tom', 'BTPS 1.500 625', 0.702604], ['Tom', 'BTPS 2.000 1225', 0.724939], ['Max', 'OBL 0.0 421', 0.766102], ['Max', 'DBR 3.250 721', 0.887863]]
我想做的是:
mapping = [['Tom',[ 'BTPS 1.500 625', 0.702604], [ 'BTPS 2.000 1225', 0.724939]],['Max',[ 'OBL 0.0 421', 0.766102],['DBR 3.250 721', 0.887863]]]
您应该使用dict/defaultdict按名称对数据进行分组,使用作为键的第一个元素作为名称,对其余数据进行切片并将其作为值附加:
这会给你:
如果顺序很重要,请使用OrderedDict:
这给了你:
如果没有任何导入,只需使用dict.setdefault再次使用常规dict:
使用setdefault,如果该键不在dict中,则会添加一个列表作为值,如果它确实存在,则只会附加值
您可以循环映射中的名称并添加到字典
相关问题 更多 >
编程相关推荐