我正在尝试将二维数组拆分为特定格式,但无法确定最后一步。我的数据样本结构如下:
# Original Data
fileListCode = [['Seq3.xls', 'B08524_057'],
['Seq3.xls', 'B08524_053'],
['Seq3.xls', 'B08524_054'],
['Seq98.xls', 'B25034_001'],
['Seq98.xls', 'D25034_002'],
['Seq98.xls', 'B25034_003']]
我试着把它分成这样:
^{pr2}$字典键1、2、3基于条目的原始位置,从文件名第一次出现开始。为此,我首先创建一个数组来获取所有唯一的文件名(任何.xls
都是一个文件名)
tmpFileList = []
tmpCodeList = []
arrayListDict = []
# store unique filelist in a tempprary array:
for i in range( len(fileListCode)):
if fileListCode[i][0] not in tmpFileList:
tmpFileList.append( fileListCode[i][0] )
然而,我正在为下一步而奋斗。我想不出一个好的方法来提取代码名(例如B08524_052
),并将它们转换成一个字典,其中包含基于它们位置的索引。在
# make array to store filelist, and codes with dictionary values
for i in range( len(tmpFileList)):
arrayListDict.append([tmpFileList[i], {}])
这段代码只生成[['Seq3.xls', {}], ['Seq98.xls', {}]]
;我不确定是否应该首先生成结构,然后尝试在中添加代码和字典值,或者是否有更好的方法。在
在--
编辑:我只是通过改变fileListCode
中的值使sample更加清晰
你把单子和听写搞混了。在
这样做更有意义:
这就产生了:
^{pr2}$这可以通过使用defaultdict进一步简化。对于这么简单的事情,可以说是太过分了,但是知道这一点是很好的。下面是一个例子:
有了,itertools.groupby这个过程将更加简单:
对于旧版Python:
^{pr2}$但我认为使用dict会更好:
相关问题 更多 >
编程相关推荐