2017-08-11 47 views
5

Her birinde iki sayıdan oluşan bir liste var.Listeler listesini sıralamak için aritmetik nasıl yapılır?

[[2, 3], [7, 8], [3, 5]] 

I bölünmesi göre sıralamak istiyorum herbiri:

örneğin 2/3 (0.666), 7/8 (0,875) 3/5 (0,6) çıkışına:

[[3, 5], [2, 3], [7, 8]] 

Bir şekilde lambda kullanacağımı farz ediyorum ama nasıl yazacağımı bilmiyorum. Bunun gibi bir şey, ama bu sadece şu değerlere göre sıralanabilir:

Aritmetiği nasıl uygularım?

cevap

10
lists = [[2, 3], [7, 8], [3, 5]] 
lists.sort(key=lambda x: (x[0]/x[1])) 
print(lists) 
+1

Python 2.x kullanıcıları için Sidenote: Burada, işlemcilerinden birini kayan noktaya dönüştürmeniz gerekir. Örn: 'float (x [0])/x [1]' – cbo

+0

'python 2.x' kullanıcıları için Sidenote eklemek için teşekkürler @cbo. –

+0

Cbo, cevabınızı bu notu yansıtacak şekilde düzenlemek isteyebileceğiniz anlamına geldiğini düşünüyorum. Sonuçta, yorumlar mutlaka sonsuza kadar olmayacak. –

-1

Bu sizin için yararlı olabilir mi?

a=[[2, 3], [7, 8], [3, 5]] 
print (sorted([a[i][0]/a[i][1] for i in range(len(a))])) 
+0

Neden aşağı oy? –

İlgili konular