pythonic方式写下面的代码

时间:2015-02-20 08:09:36

标签: python list python-3.x

如何以更加python-ic的方式编写以下代码?

list_1 = [1,2,3,4]
list_2 = [2,4]
list_index = 0
list_3 = [0 for i in range(len(list_1)+len(list_2))]
for index in range(6):
      if index in list_2:
           list_3[index] = -1
      else:
           list_3[index] = list_1[list_index]
           list_index += 1

所以list_3将包含= [1,2,-1,3,4,-1]

2 个答案:

答案 0 :(得分:0)

我怀疑这就是你要找的东西:

values = [2,5,8,3,5,7]
indexes = [0,3,5]

result = []
for i,v in enumerate(values):
    if i in indexes:
        result.append(-1)
        result.append(v)
    else:
        result.append(v)

print(result)

我不确定预期的确切逻辑,但这可能是一个好的开始。

答案 1 :(得分:0)

嗯,这是你做错的一些事情:

list_3 = [0 for i in range(len(list_1)+len(list_2))]

最好写成

list_3 = [0] * (len(list_1)+len(list_2))

一般情况下,我不明白您尝试使用代码实现的目标。它的作用似乎非常复杂。