2017-09-24 108 views
-5

我有这样一个列表:Python列表 - 重新排列元素(列表理解)

名单= [1,2,3,4,5,6,7,8,9]

而且重新排序像这样:

list2中= [[1,4,7],[2,5,8],[3,6,9]]

基本上与列表中理解的第一个元素与它配对第四和第七,第二和第五和第八,第三和第六和第九,所以跳过每两个值。

+1

请自己做功课。 – Sraw

回答

0

您可以创建一个列表解析表达式像:

  • 如果你想鸿沟基于桶的 “计数” 列表

    :如果你

    >>> bucket_count = 3 
    >>> my_list = [1,2,3,4,5,6,7,8,9,10,11,12] 
    
    >>> [my_list[i::bucket_count] for i in range(bucket_count)] 
    [[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]] 
    
  • 想要根据存储桶的“大小”划分清单

    >>> bucket_size = 3 
    >>> bucket_count = len(my_list)/bucket_size # Calculate bucket count based on size 
    
    # Same logic as above 
    >>> [my_list[i::bucket_count] for i in range(bucket_count)] 
    [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]