-1

非常基本的问题,我列出了一个说 50 个整数的列表。

我需要重新编号每个元素

示例列表[4,6,78,21,3,32 等....]

需要将列表返回为 returnList[0,1,2,3,4,5 等...]

numOfRemaps = len.exampleList
while remap < numOfRemaps
      for item in exampleList:
            if remap != item:
                    item = item + 1

            remap = remap + 1

这是我迷路的地方,我可以将变量重写回exampleList,还是应该将它们写入returnList,然后将其映射回exampleList。

可能是一个简单的问题,被要求在飞行中做一点 python,让我措手不及!

4

4 回答 4

1

对于一般情况,用于enumerate获取索引和项目。然后您可以分配回列表

    for i, item in enumerate(exampleList):
        if remap != item:
                exampleList[i] = item + 1

        remap = remap + 1
于 2013-06-06T10:38:06.250 回答
0

你为什么想做这个?

print range(len(your_list))

否则,使用 list-comp:

print [i+1 if some_criteria(i) else 0 for i in your_list]
于 2013-06-06T10:22:04.637 回答
0
org_list = [4,6,78,21,3,32]
new_list = [item if(item == idx) else item+1 for idx, item in enumerate(org_list)]
于 2013-06-06T10:41:39.043 回答
0

或者,如果您拥有每个 int,您可以使用 Jon Clements 的答案,如果您在两者之间缺少一些 int,则可以使用 sorted。

myList = sorted(exampleList)
do_whatever(myList)
于 2013-06-06T10:26:01.927 回答