【发布时间】:2014-01-24 07:07:22
【问题描述】:
我需要根据现有列表 JRstrt 的内容生成一个新列表 p。现有列表是:
JRstrt = [1,1,0,0,1,0,1,1]
创建新列表的规则是:
- 在第一次通过时,JRstrt 中的每个 1 都向 p 添加一个序列号。序列计数器从第一个 1 的 1 开始,第二个 1 的 2 开始,依此类推。对于 JRstrt 中的每个 0,都会在 p 后面附加一个 0。
- 在第二次传递中,JRstrt 中的每个 0 继续使用现有计数器将序列号添加到新列表中。
这是我当前的代码:
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 的菜鸟,我想对我的方法进行批评。非常感谢。
预期输出 [1, 2, 6, 7, 3, 8, 4, 5]
【问题讨论】:
-
能否在您的帖子中发布该示例的预期输出?
标签: python list python-2.7