【发布时间】:2020-01-07 20:28:36
【问题描述】:
我想用 python 生成一个基于另一个列表的信息的列表。以下示例应演示我要传输哪些信息:
给出以下列表:
list_a=[0,0,0,0,0,0,0,0,0,1,2,3,4,0,0,0,0,1,2,0,0,0,0,1,2,3,4,5,0,0,0]
那么,我要生成的列表应该是这样的:
list_b=[0,0,0,0,0,0,0,0,0,4,3,2,1,0,0,0,0,2,1,0,0,0,0,5,4,3,2,1,0,0,0]
我是这样开始的:
list_b=[]
list_b = [0] * list_a.__len__() #create a list of nulls
for i in range (list_a.__len__()):
if list_a(i)!=0:
if list_a(i+1)=0:
list_b.insert(i-(list_a[i]-1),list_a[i])
但是后来我只将第一个元素插入到 list_b 并且仍然需要插入所有后续元素(例如插入 4 并且仍然需要插入 3、2、1)并且解决方案/代码似乎太乱了。
有人知道优雅的解决方案吗?
【问题讨论】:
-
所以你想保持零在同一个位置并反转非零整数?
-
我想用 python 生成一个基于另一个列表中的信息的列表。 这到底是什么意思?我们如何帮助您完成一项我们几乎一无所知的任务?! #create a list of nulls 如果要表示类似 null 的内容,请使用 None。
-
@AMC 显然这里的 null 并不意味着 None 而是零(可以理解,尤其是当一个来自德国时)。
-
@StefanPochmann 你可能是对的,是的。
-
@AMC 对不起,我的意思是零,而不是零!我希望这些信息足以理解剩下的任务