嵌套列表A = [[1, 110, 150, 3], [5, 95, 155, 1], [4, 115, 195, 4], [2, 105, 205, 2]]
。我试图给这些单独的列表中的每一个给出一个分数,它最初被计算为score = number of individual nested lists that have ( higher 3rd element value (3, 1, 4, 2) AND a presence in RanksList)
;其中Rankslist = []
。你知道吗
因此,基本上需要在每个单独列表中添加一个元素,RanksList
变成RanksList = [[1, 110, 150, 3, x], [5, 95, 155, 1, x], [4, 115, 195, 4, x], [2, 105, 205, 2, x]]
;其中x
是每个单独列表的计算得分。到目前为止,这就是我所拥有的,我被困住了:
m = 0
n = 0
i = 0
#RanksList = []
A = [[1, 110, 150, 3], [5, 95, 155, 1], [4, 115, 195, 4], [2, 105, 205, 2]]
duplicate_list = A[:]
for m in A:
for n in duplicate_list:
if (n[i][3] < m[i][3]) and (n in RanksList):
RanksList.append(m)
i = i + 1
print(len(RanksList))
print(RanksList)
我试图复制原始的list A
,并将每个嵌套列表中的第三个元素分别与原始嵌套列表进行比较,以填充RanksList
。我是Python的新手,在列表上仍然不稳定。我试着不用numpy做这件事。谢谢。你知道吗
Python
for
不需要索引变量。在for
中,当前迭代的元素将在in
之前的变量中可用。因此,要访问内部列表的第三个元素,您需要最后,
RankList
中的每个条目都应有一个条目。但是如果我们从一开始就把它们填入RankList
,你在分数计算中的条件就没有意义了,所以我猜这不是你想要的。但是,您必须在某个时候填写这些值,并且不能使这些值依赖于已经存在的值,否则这种情况永远不会发生。你知道吗也许在我们处理完外部迭代之后,添加它的值就是您想要的:
哦,语法高亮显示认为
RankList
是一个类,因为它以大写字母开头,继续大小写混合。(python类的命名约定。不是由语言强制执行,只是一个约定。)让我们重命名它:现在我们可以在以下条件下使用它:
您希望rank\u list中的列表将分数作为第5个元素(即在索引
4
)。你知道吗但是,等等,
n in rank_list
现在将始终为false,因为rank_list
将包含不同的列表。让我们使用两个单独的列表,因此:相关问题 更多 >
编程相关推荐