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

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • PomplamooseMusic

    PomplamooseM

    28 HAZİRAN 2008