我正在尝试对下面的myList列表执行一些操作,但在理解它时遇到了一些问题。我对Python很陌生。你知道吗
myList = [
['Issue Id','1.Completeness for OTC','Break',3275,33,33725102303,296384802,20140107],
['Issue Id','2.Validity check1 for OTC','Break',3308,0,34021487105,0,20140107],
['Issue Id','3.Validity check2 for OTC','Break',3308,0,34021487105,0,20140107],
['Issue Id','4.Completeness for RST','Break',73376,1,8.24931E+11,44690130,20140107],
['Issue Id','5.Validity check1 for RST','Break',73377,0,8.24976E+11,0,20140107],
['Liquidity','1. OTC - Null','Break',7821,0,2.28291E+11,0,20140110],
['Liquidity','2. OTC - Unmapped','Break',7778,43,2.27712E+11,579021732.8,20140110],
['Liquidity','3. RST - Null','Break',335120,0,1.01425E+12,0,20140110],
['Liquidity','4. RST - Unmapped','Break',334608,512,1.01351E+12,735465433.1,20140110],
['Liquidity','5. RST - Valid','Break',335120,0,1.01425E+12,0,20140110],
['Issue Id','1.Completeness for OTC','Break',3292,33,32397924450,306203929,20140110],
['Issue Id','2.Validity check1 for OTC','Break',3325,0,32704128379,0,20140110],
['Issue Id','3.Validity check2 for OTC','Break',3325,0,32704128379,0,20140110],
['Issue Id','4.Completeness for RST','Break',73594,3,8.5352E+11,69614602,20140110],
['Issue Id','5.Validity check1 for RST','Break',73597,0,8.5359E+11,0,20140110],
['Unlinked Silver ID','DQ','Break',3201318,176,20000000,54974.33386,20140101],
['Missing GCI','DQ','Break',3201336,158,68000000,49351.9588,20140101],
['Missing Book','DQ','Break',3192720,8774,3001000000,2740595.484,20140101],
['Matured Trades','DQ','Break',3201006,488,1371000000,152428.8348,20140101],
['Illiquid Trades','1.Completeness Check for range','Break',43122,47,88597695671,54399061.43,20140107],
['Illiquid Trades','2.Completeness Check for non','Break',39033,0,79133622401,0,20140107]
]
我试图得到以下结果,但不知道如何做到这一点:
newList = [
['Issue Id','1.Completeness for OTC:2.Validity check1 for OTC:3.Validity check2 for OTC','Break',3275,33,33725102303,296384802,20140107],
['Issue Id','4.Completeness for RST:5.Validity check1 for RST','Break',73376,1,8.24931E+11,44690130,20140107],
['Liquidity','1. OTC - Null','Break:2. OTC - Unmapped','Break',7821 0,2.28291E+11,0,20140110],
['Liquidity','3. RST - Null:4. RST - Unmapped:5. RST - Valid','Break',335120,0,1.01425E+12,0,20140110],
['Issue Id','1.Completeness for OTC:2.Validity check1 for OTC:3.Validity check2 for OTC','Break',3292,33,32397924450,306203929,20140110],
['Issue Id','4.Completeness for RST:5. RST - Valid','Break',73594,3,8.5352E+11,69614602,20140110],
['Unlinked Silver ID','DQ','Break',3201318,176,20000000,54974.33386,20140101],
['Missing GCI','DQ','Break',3201336,158,68000000,49351.9588,20140101],
['Missing Book','DQ Break',3192720,8774,3001000000,2740595.484,20140101],
['Matured Trades','DQ','Break',3201006,488,1371000000,152428.8348,20140101],
['Illiquid Trades','1.Completeness Check for range','Break',43122,47,88597695671,54399061.43,20140107],
['Illiquid Trades','2.Completeness Check for non','Break',39033,0,79133622401,0,20140107]
]
创建新列表的规则。如果列表中的值满足以下条件,请在列表的newList列表中创建新列表:
myList[i][0]
和myList[i][7]
上匹配但具有(1)个myList[i][3]
和myList[i][4]
和(2)个相互不同的myList[i][5]
和myList[i][6]
的和的多个列表仅按newList中的原样列出myList[i][0]
(这是类型)和myList[i][7]
(这是日期)上都匹配,那么为每一组具有匹配myList[i][0]
和myList[i][7]
的列表创建一个新列表,这些列表(1)具有myList[i][3]
和myList[i][4]
的和(2)具有不同于其他具有匹配myList[i][0]
和myList[i][7]
的myList[i][5]
和myList[i][6]
的和。我还尝试将myList[i][1]
与myList[i][0]
和myList[i][7]
匹配的所有列表,以及myList[i][3]
+myList[i][4]
和myList[i][5]
+myList[i][6]
匹配的总和连接起来。因此本质上对于这种情况,只有那些在myList
中的列表与其他列表不同,这些列表的和是myList[i][3]
+myList[i][4]
和myList[i][5]
+myList[i][6]
,然后在newList中列出。你知道吗上面的新列表说明了我正在努力实现的这些结果。如果有人有任何想法如何做到这一点,他们将不胜感激。谢谢您!你知道吗
我试着写作。你知道吗
所以,完全不清楚你想做什么。但我认为这会帮助你完成它。你知道吗
现在,在我看来,我们可以按
(elem[0], elem[7])
键对这个列表进行排序。如果我们这样做,那么我们只会合并邻居。你知道吗如果这是真的,那么我们可以进行排序,然后应用一个缩减函数:
这个归约函数不是你想要的,但那是因为我不明白你想要什么。特别是,此代码生成:
注意:假设前提成立(您只合并可以轻松排序的元素),您可以非常轻松地修复不合并对象的条件,也可以非常轻松地修复创建新合并对象的条件。你知道吗
相关问题 更多 >
编程相关推荐