我需要根据现有列表JRstrt的内容生成一个新的列表p。现有列表为:
JRstrt = [1,1,0,0,1,0,1,1]
创建新列表的规则如下:
这是我目前的代码:
p = []
count = 1
for ind in JRstrt:
if ind == 1:
p.append(count)
count += 1
else:
p.append(0)
for index, object in enumerate(p):
if p[index] == 0:
p[index] = count
count += 1
else:
pass
print p
这种方法给了我想要的结果,但是我觉得有点笨拙。作为Python的noob,我想对我的方法提出批评。非常感谢。你知道吗
预期输出[1,2,6,7,3,8,4,5]
这应该与您的代码执行相同的操作:
进一步优化:
用
p = [next(count) if i else i for i in JRstrt]
替换p = JRstrt[:]
相关问题 更多 >
编程相关推荐