2015-02-11 40 views
-1

我有这样两个列表生成新的列表:Python和两个列表正与价值观

occurrence = [2,1,3,1,4,...] 
dates = [2.4, 1.5, 30, 5.6,4, 8, 32, ...] 

结果:

list1 = [2.4, 1.5] 
list2 = [3.0] 
list3 = [30, 5.6,4] 
... 

我不知道有多大每个列表,但我需要提取日期列表的值,取决于每个项目在发生时的价值和放入新闻列表。我在蟒蛇是新的,谢谢你的帮助

+2

'list2'的'3.0'从哪里来? – DSM 2015-02-11 04:47:31

回答

0

您可以通过使用array[START:STOP]切片阵列(详见样本它tutorial):

>>> p = 0 
>>> for i in occurrence: 
...  print dates[p:p+i] 
...  p += i 

[2.4, 1.5] 
[30] 
[5.6, 4, 8] 
[32] 
[] 

它不依赖于哪个数组更长,它仍然可以工作。正如你在第4次迭代中看到的那样,你会得到一个空数组,因为dates数组中没有任何内容。

+0

谢谢你我的朋友!!!这对我很有帮助,我只需要为每个新列表命名 – 2015-02-11 06:11:36

1

我觉得这样的事情就足够了:

previous = 0 
lists = [] 
for quantity in ocurrence: 
    lists.append(dates[previous:previous+quantity]) 
    previous += quantity 
print lists 
+0

谢谢!!!我的朋友 – 2015-02-11 06:12:19