toplam Python numaraları listesi
Eğer rakamlar böyle bir liste varsa [1,2,3,4,5...] ve (1 2)/2 hesaplamak istiyorum ikincisi için, 2/(2 3) ve üçüncüsü, (3 4)/2, ve benzeri.
Bunu nasıl yapabilirim? İkinci ile ilk sayıyı topla ve 2, üçüncü ile ikinci topla sonra bunu bölmek istiyorum ve 2, böl.
Ayrıca, nasıl numaraları listesi toplam miyim?
a = [1,2,3,4,5,...]
Oldu:
b = sum(a)
print b
bir numara almak için? Bu benim için çalışmıyor. Bana lütfen yardım edin.
CEVAP
Soru 1: (0 öğe öğe 1) / 2, (element 1 element 2) / 2, ... vb.
Biz ne iki liste yapın: ilk ve son hariç her elemanın biri hariç her elemanın biri. Daha sonra ortalamalar istediğimiz her çifti iki listeyi alınan ortalamalar. zip
iki listelerinden çiftleri çekmek için kullanıyoruz.
Edit: giriş değerleri tamsayı olsa bile sonuç ondalık görmek istiyorsun sanırım. Bölüm tam sayı yapar Python varsayılan olarak: kalan atar. Tüm yol boyunca şeyler bölmek için, kayan nokta sayıları kullanmamız gerekiyor. Neyse ki, bir şamandıra ile bir int bölen bir şamandıra üretecek, biz sadece 2
yerine bölen 2.0
kullanın.
Böylece:
averages = [(x y) / 2.0 for (x, y) in zip(my_list[:-1], my_list[1:])]
Soru 2:
sum
Bu iyi çalışması gerekir. Aşağıdaki çalışır:
a = range(10)
# [0,1,2,3,4,5,6,7,8,9]
b = sum(a)
print b
# prints 45
Ayrıca, yol boyunca her adımda bir değişken için her şeyi atamak gerek yok. print sum(a)
gayet güzel çalışıyor.
Yazdığın tam olarak çalışmıyor hakkında daha spesifik olmanız gerekiyor.
Bulma öğenin dizin listesi Python içer...
Nasıl sözlük değerlere göre sözlükler ...
Nasıl klon ya da Python içinde bir lis...
Nasıl Python ederken bir listesi düzen...
Nasıl python listesi tersine çevirebil...