如何在python中拆分列表和排序

时间:2017-01-13 23:06:50

标签: python

假设您有一个列表A = [1,2,3,4,5,6,7,8,9,10]。在一行代码中,将A切成两半并将B指定为A的后半部分的副本,然后是前半部分(即B将等于[6,7,8,9,10,1,2,3] ,4,5])。

3 个答案:

答案 0 :(得分:1)

您可以根据长度将列表切片为:

>>> A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> B = A[-len(A)//2:] + A[:len(A)//2]
>>> B
[6, 7, 8, 9, 10, 1, 2, 3, 4, 5]

请参阅相关帖子以了解有关Python's slice notation

的更多信息

答案 1 :(得分:1)

解决这个问题的三个步骤:

  • 计算中期。我假设对于非常大小的列表,后半部分应该更长。然后你可以简单地使用地板划分:len(A) // 2

  • 您可以从特定索引([idx:])切片,然后切片到索引([:idx])。这些只是切片的两个应用,但你需要的是这些。

  • 您可以通过添加(+)来连接列表。

把所有这些放在一起:

B = A[len(A)//2:] + A[:len(A)//2]   # second half + first half

答案 2 :(得分:0)

您对列表[1,2,3,4,5,6,7,8,9,10]的确切问题的答案是: 将列表a从索引5拆分为最后一个,并添加索引为0到4的元素。您可以使用以下代码执行此操作:

a=[1,2,3,4,5,6,7,8,9,10]
b=a[5:]+a[0:5]

通常,在某种意义上,对于n个元素,程序可以写成:

a=[1,2,3,4,5,6,7,8,9,10]
l=len(a)
b=a[l/2:]+[0:l/2]
print b