我有一个二维数组,并希望结合部分类似的项目
[
[Red,Blue,Yellow,5]
[Red,Blue,Yellow,10]
[Red,Blue,Green,5]
[Red,Blue,Green,5]
[Red,Blue,Orange,5]
[Red,Blue,Violet,5]
]
我希望它变成这样,修剪并创建一个独特的数组
[
[Red,Blue,Yellow,15]
[Red,Blue,Green,10]
[Red,Blue,Orange,5]
[Red,Blue,Violet,5]
]
我就是这么做的。我只有基本的,想有一个更好的版本
newTaskList = []
totalTaskList = []
totalValueList = []
finalTaskList = []
for taskIndex, taskList in enumerate(readTaskList):
newTaskList = []
newTaskList.append(taskList[0])
newTaskList.append(taskList[1])
newTaskList.append(taskList[2])
newTaskList.append(taskList[4])
if(newTaskList not in totalTaskList):
totalTaskList.append(newTaskList)
totalValueList.append(float(taskList[3]))
else:
for itemIndex, itemList in enumerate(totalTaskList):
if(itemList[0] == taskList[0] and itemList[1] == taskList[1] and itemList[2] == taskList[2] and itemList[3] == taskList[4]):
totalValueList[itemIndex] += float(taskList[3])
for taskIndex, task in enumerate(totalTaskList):
for workType in workTypeList:
newWorkTypeItem = task[2].replace(" ","_").split("_")
if len(newWorkTypeItem) > 1:
task[2] = newWorkTypeItem[0] + " " + newWorkTypeItem[1]
if(task[1] == workType[0] and task[2] == workType[1]):
task[2] = workType[2]
break
task.append(totalValueList[taskIndex])
finalTaskList.append(task)
使用集合模块
例如:
输出:
您可以使用
defaultdict
输出
相关问题 更多 >
编程相关推荐