2

说我有这份清单

listlist = [[0,0,0,1],[0,0,1,1],[1,0,1,1]]

和一个空的 dict()

answer = dict()

并说我想在每个列表中找到最左边的非零,以便我可以将该非零数字的索引保存到字典中,例如:

for list in listlist: #(this is how the first iteration would look like:)

answer[0] = 3

下一次迭代

answer[1] = 2

下一次迭代

answer[2] = 0

我对编程很陌生,所以如果它是微不足道的,请原谅,我尝试了不同的东西,很难找到如何做到这一点。

4

3 回答 3

8

如果它只是0s 和1s 只是做类似的事情,

>>> answer = {i: lst.index(1) for i, lst in enumerate(listlist)}
>>> answer
{0: 3, 1: 2, 2: 0}

另外,不要list用作变量名,因为它会屏蔽list内置。

于 2013-08-15T03:10:54.473 回答
4

假设只有0s 和1s 这应该有效

i = 0
for mylist in listlist:
  answer[i] = mylist.index(1)
  i += 1

我建议您不要命名您的 list list,这会覆盖某些功能。我更喜欢默认为变量名mylist

于 2013-08-15T03:08:24.310 回答
2
listlist = [[0,0,0,1],[0,0,1,1],[1,0,1,1]]
answer = dict()
for idx,alist in enumerate(listlist):
    for i in range(len(alist)):
        if alist[i] > 0:
            answer[idx] = i
于 2013-08-15T03:10:30.020 回答