SORU
6 Aralık 2010, PAZARTESİ


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
6 Aralık 2010, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • MrMimoB

    MrMimoB

    11 NİSAN 2011
  • Subscribe!!

    Subscribe!!

    3 EKİM 2009