296
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi có một danh sách các danh sách. Ví dụ,
[
[0,1,'f'],
[4,2,'t'],
[9,4,'afsd']
]
Nếu tôi muốn sắp xếp danh sách bên ngoài theo trường chuỗi của danh sách bên trong, bạn sẽ làm thế nào trong Python?
John La Rooy
286K51 Huy hiệu vàng359 Huy hiệu bạc499 Huy hiệu đồng51 gold badges359 silver badges499 bronze badges
Đã hỏi ngày 13 tháng 11 năm 2010 lúc 21:54Nov 13, 2010 at 21:54
2
Đây là một công việc cho Itemgetter
>>> from operator import itemgetter
>>> L=[[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> sorted[L, key=itemgetter[2]]
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]
Cũng có thể sử dụng chức năng Lambda ở đây, tuy nhiên chức năng Lambda chậm hơn trong trường hợp đơn giản này
Đã trả lời ngày 13 tháng 11 năm 2010 lúc 21:59Nov 13, 2010 at 21:59
John La Rooyjohn La RooyJohn La Rooy
286K51 Huy hiệu vàng359 Huy hiệu bạc499 Huy hiệu đồng51 gold badges359 silver badges499 bronze badges
8
Đã hỏi ngày 13 tháng 11 năm 2010 lúc 21:54
>>> l = [[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> l.sort[key=lambda x: x[2]]
Đây là một công việc cho Itemgetter
>>> sorted[l, key=lambda x: x[2]]
Cũng có thể sử dụng chức năng Lambda ở đây, tuy nhiên chức năng Lambda chậm hơn trong trường hợp đơn giản nàyNov 13, 2010 at 22:00
Đã trả lời ngày 13 tháng 11 năm 2010 lúc 21:59mouad
John La Rooyjohn La Rooy18 gold badges113 silver badges105 bronze badges
5
tại chỗ
sorted_list = sorted[list_to_sort, key=itemgetter[2,0,1]]
Không có vị trí bằng cách sử dụng sắp xếp:Mar 21, 2013 at 10:25
Đã trả lời ngày 13 tháng 11 năm 2010 lúc 22:00fider
Mouadmouad25 silver badges29 bronze badges
1
65.2K18 Huy hiệu vàng113 Huy hiệu bạc105 Huy hiệu đồng
sorted_list = sorted[list_to_sort, key=lambda x: [x[1], x[0]]]
ItemGetter cho phép bạn sắp xếp theo nhiều tiêu chí / cột:Mar 24, 2017 at 9:46
Đã trả lời ngày 21 tháng 3 năm 2013 lúc 10:25Rahul Kumar
Fiderfider3 silver badges12 bronze badges
1
array.sort[key = lambda x:x[1]]
1.91625 Huy hiệu bạc29 Huy hiệu đồng
Nhiều tiêu chí cũng có thể được thực hiện thông qua chức năng LambdaJun 20, 2018 at 11:22
Đã trả lời ngày 24 tháng 3 năm 2017 lúc 9:46Abhi
Rahul Kumarrahul Kumar1 gold badge11 silver badges25 bronze badges
2713 Huy hiệu bạc12 Huy hiệu Đồng
import operator
l = [...]
sorted_list = sorted[l, key=operator.itemgetter[desired_item_index]]
Cũng có thể sử dụng chức năng Lambda ở đây, tuy nhiên chức năng Lambda chậm hơn trong trường hợp đơn giản nàyNov 13, 2010 at 22:00
Đã trả lời ngày 13 tháng 11 năm 2010 lúc 21:59Jim Brissom
John La Rooyjohn La Rooy3 gold badges37 silver badges33 bronze badges
tại chỗ
old_list = [[0,1,'f'], [4,2,'t'],[9,4,'afsd']]
#let's assume we want to sort lists by last value [ old_list[2] ]
new_list = sorted[old_list, key=lambda x: x[2]]
#Resulst of new_list will be:
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]
Không có vị trí bằng cách sử dụng sắp xếp:Aug 28, 2017 at 13:26
Đã trả lời ngày 13 tháng 11 năm 2010 lúc 22:00Tushar Niras
Mouadmouad2 gold badges20 silver badges24 bronze badges
65.2K18 Huy hiệu vàng113 Huy hiệu bạc105 Huy hiệu đồng
ls2=[[0,1,'f'],[4,2,'t'],[9,4,'afsd']]
def thirdItem[ls]:
#return the third item of the list
return ls[2]
#Sort according to what the thirdItem function return
ls2.sort[key=thirdItem]
ItemGetter cho phép bạn sắp xếp theo nhiều tiêu chí / cột:Nov 23, 2018 at 18:31
>>> from operator import itemgetter
>>> L=[[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> sorted[L, key=itemgetter[2]]
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]
0Đã trả lời ngày 21 tháng 3 năm 2013 lúc 10:25
FiderfiderJan 9, 2019 at 17:13
1
1.91625 Huy hiệu bạc29 Huy hiệu đồng
>>> from operator import itemgetter
>>> L=[[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> sorted[L, key=itemgetter[2]]
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]
1Nhiều tiêu chí cũng có thể được thực hiện thông qua chức năng LambdaFeb 12, 2019 at 8:02
Đã trả lời ngày 24 tháng 3 năm 2017 lúc 9:46Nishan B
Rahul Kumarrahul Kumar4 silver badges5 bronze badges
2
2713 Huy hiệu bạc12 Huy hiệu Đồng
Bạn có thể dễ dàng sắp xếp bằng đoạn trích này, trong đó 1 là chỉ mục của phần tử.
Đã trả lời ngày 20 tháng 6 năm 2018 lúc 11:22Oct 26, 2020 at 16:41
Abhiabhi
>>> from operator import itemgetter
>>> L=[[0, 1, 'f'], [4, 2, 't'], [9, 4, 'afsd']]
>>> sorted[L, key=itemgetter[2]]
[[9, 4, 'afsd'], [0, 1, 'f'], [4, 2, 't']]
21.0391 Huy hiệu vàng11 Huy hiệu bạc25 Huy hiệu đồngFeb 18 at 10:36