结构如下:
# 0. [File1]
# 1. [File2]
# 2. [X] entre f1 et f2
# 3. [identites] |
# 4. [position] (position in f1, position inf2)
# 5. [hashcode]
results_struct = ([nb_comon_ngs, idents_sum, gaps_sum, alength_sum, word_position, ns_sum])
假设我想按“f1中的位置”对结构排序:单元格[4][0]。你知道吗
样品:
results_struct = [
[14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],
[32, 4, 16, 13, 13, 32, 22, 18, 22, 31, 24, 23, 40, 35],
[19, 0, 2, 2, 1, 19, 0, 0, 2, 19, 2, 1, 1, 3],
[51, 4, 18, 15, 14, 51, 22, 18, 24, 50, 26, 24, 41, 38],
[(48, 112), (60, 51), (45, 49), (46, 50), (59, 134), (49, 113), (34, 27), (35, 28), (43, 47), (50, 114), (53, 121), (57, 132), (32, 25), (41, 45)],
['ilya', 'pluspas', 'pasbeaucoup', 'beaucoupplus', 'estplus', 'yaune', 'pourdépaserde', 'dépaserdela', 'oupluspas', 'enadeux', 'queontailleurs', 'laestplus', 'suffisammentpourdépaserde', '100oupluspas']
]
#becomes
[
[14, ...],
[40, ...],
[1, ...],
[41, ...],
[(32, 25), (34, 27), (35, 28), (41, 45), (43, 47), (45, 49), (46, 50), (48, 112), (49, 113), (50, 114), (53, 121), (57, 132),(59, 134), (60, 51)],
['suffisammentpourdépaserde', ...]
]
为什么会这样:
r = sorted(results_struct, key=lambda o: o[4][0])
不起作用?你知道吗
它引发“TypeError:'int'对象不可下标”
我尝试了许多key/cmp/sorted/sort变体,但都没有成功。 我该怎么办?你知道吗
假设内部列表的长度相等:
这里
list(zip(*results_struct))
是这样的:然后,
o
表示一行,o[4]
是它的第四个元素,看起来是一个元组,它是完全可下标的。你知道吗如果您使用的是python2.x,那么可以安全地省略
list
。你知道吗相关问题 更多 >
编程相关推荐