2012-11-26 22 views
7

Tôi có một danh sách:tạo danh sách mới mà không thay đổi danh sách ban đầu

  L=[2,0,4,5] 

và tôi muốn tạo một danh sách mới mà không thay đổi L chính nó:

 K= [0,2,4,5] 

nhưng khi tôi cố gắng:

 K=L.sort() 
     print(K) 

nó không in được gì và nếu tôi thử:

 print(L) 

nói ra: [0,2,4,5]

tại sao K là không = [0,2,4,5]? và làm cách nào để tạo danh sách mới [0,2,4,5] và không thay đổi L?

+0

Mục đầu tiên google lợi nhuận cho 'danh sách python sort' giải thích điều này. Bạn đã thử và tìm ra điều này? –

Trả lời

4

Bạn cần phải sử dụng các chức năng được xây dựng trong sorted: sorted(L)

13

Sau đây sẽ tạo một bản sao sắp xếp của L và gán nó vào K:

K = sorted(L) 

sorted() là một hàm dựng sẵn.

Lý do K = L.sort() không hoạt động là sort() sắp xếp danh sách tại vị trí và trả về None. Đây là lý do tại sao L kết thúc được sửa đổi và K kết thúc là None.

Đây là cách bạn có thể sử dụng sort():

K = L[:] # make a copy 
K.sort() 
+0

được sắp xếp một phương pháp danh sách? – user1817310

+0

Không, nó là một nội trang. http://docs.python.org/2/library/functions.html#sorted – NPE

+0

@ user1817310 'được sắp xếp()' là hàm dựng sẵn, các phương thức được biểu thị bằng ký hiệu '.', nghĩa là' L.something() ' –

Các vấn đề liên quan