我有下面的情景
list1=['10/22/2017 10:00','10/22/2017 10:00','10/22/2017 10:00',
'10/22/2017 11:00','10/22/2017 11:00','10/22/2017 11:00',
'10/22/2017 12:00','10/22/2017 12:00','10/22/2017 12:00',
....
]
list2 = [1,2,5,4,5,3,3,5,6,......] #(list2 size will be equal to no. of unique elements of list1)
我的问题是如何显示具有如下值的list3
list3=[1,1,1,
2,2,2,
5,5,5,
...]
表示list1的连续重复元素数,每个list2元素应多次追加到list3中
您可以使用
itertools
:输出:
您可以使用^{} 来实现这一点
它将list1分组成相等元素的块(实际上这些块本身就是[key,chunk generator]对),将这些块与list2中相应的项进行压缩,并使用块的长度和list2中的项来组装最终的列表,使用旧的
sum(lists, [])
技巧,这并不是整平列表的最佳方法,但非常简洁。如果性能很重要,请使用嵌套理解:也可以使用
collections.Counter()
请注意,这并不一定保留
list1
中唯一项的出现顺序相关问题 更多 >
编程相关推荐