I have a ' [1.2,3.4,5.]' 과 같은 번호 목록을 보고 싶습니다 '와' (1+2) /2 계산하십시오 두 번째, 3 위, ',' (2+3) /2 ' (3+4) /2', 그리고 드릴링됩니다. 그렇게 할 수 있습니까?
이를 통해 함께 나누고 싶다 첫 번째 숫자는 모두 두 번째, 세 번째, 두 번째 어졌다면 합계 2 2 등과 함께 나눕니다.
또한 적지 않은 숫자의 바뀌엇어요 어떻게 해야 합니까?
a = [1, 2, 3, 4, 5, ...]
Is it.
b = sum(a)
print b
afaq 하나의 숫자는?
질문 1: 그래서 운영까지도 (요소 요소에 0 + 1) / 2 (1 + 요소 요소에 2) / 2. 상술합니다.
우리가 만드는 두 목록: 첫 번째 제외한 모든 요소를 제외한 모든 요소 중 하나는 마지막. 그러면 우리가 원하는 것을 빼앗아 각 페어당 오른길로 평균 두 있습니다. 우리가 사용하는 zip '을 시행하십시오 페어' 의 두 가지 있습니다.
내가 보고 싶은 경우에도 사용자의 입력 값은 결과 자리로 solaris. 기초적 성질. 기본적으로, Python 은 정수 분할. it discards 나머지. We need to all the way, 부동 소수점 숫자를 사용하여 사물을 나눌 수 있습니다. 다행히 충족되었으며 int 의해 분할하는 '2.0' 의 부동 소수점, 따라서 부동 소수점 이르게 됩니다 제수 대신 '2'.
따라서:
averages = [(x + y) / 2.0 for (x, y) in zip(my_list[:-1], my_list[1:])]
질문 2:
사용할 수 있는 '합' /dev/raw/raw200 제대로 작동합니다. 다음 작업:
a = range(10)
# [0,1,2,3,4,5,6,7,8,9]
b = sum(a)
print b
# Prints 45
또한, t need to # 39 don& 할당할지 변수에 접근하는 모든 단계에서 모든 길을 따라. 합계 (a) '' 인쇄하십시오 작동됩니다.
좀 더 구체적으로 어떤 식으로 합니다 대한 정확히요 너희는너희가 작성했습니까 isn& # 39, t 작업 중.
합계 목록 번호:
sum(list_of_nums)
통계하는 중 절반은 n 과 n - 1 (할 경우 올바른 패턴 (pattern) 을 한 [목록 번역] [1]:
[(x + (x - 1)) / 2 for x in list_of_nums]
인접한 요소를 더한 (예: ((1 + 2) / 2) + ((2 + 3) / 2) +. using [수] [2] 와 [람다] [3]
reduce(lambda x, y: (x + y) / 2, list_of_nums)
[1]: http://docs.python.org/release/2.7/tutorial/datastructures.html # 지능형 목록 [2]: http://docs.python.org/release/2.7/tutorial/datastructures.html # 함수형 프로그래밍 도구 [3]: http://docs.python.org/release/2.7/tutorial/controlflow.html # 람다 (λ) 양식
이렇게 볼 수 있습니다.
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sm = sum(a[0:len(a)]) # Sum of 'a' from 0 index to 9 index. sum(a) == sum(a[0:len(a)]
print(sm) # Python 3
print sm # Python 2
>>> a = range(10)
>>> sum(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> del sum
>>> sum(a)
45
적지 않은 것으로 보인다 '코드' 에 정의되어 있으며 어딘가에 덮어씁니다 기본 기능. 그래서 정보기술 (it) 과 폐기됩니다 문제가 해결되었다.
모든 질문에 한 쇼 프로그램 방식 및 일반 외곽진입. 난 수학 제안하세요 외곽진입 특정 단축시킵니다 사례. 특히 오래 열거합니다 더 빠를 수 있다. 자연수 작동하잖아 있으므로 목록은 최대 'n':
>>> nat_seq = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
명단에 '합' 기능을 사용할 수 있습니다.
>>> print sum(nat_seq)
55
'N (n + 1) /2 * 공식을 사용할 수도 있습니다' n '은' 가치 있는 마지막 요소에 목록 (위치: 'nat_seq [- 1]'), 반복 요소를 통해 피할 수 있도록 합니다.
>>> print (nat_seq[-1]*(nat_seq[-1]+1))/2
55
E0100042.log 생성할 수 ' (1+2) /2 (2+3) /2. (9+10) /2' 및 ' ( k-1) /2 공식을 발생기입니다 사용할 수 있습니다. " (할 수 있는 값을 joyon. 기록하십시오 부동 점). 당신은 건너뛰려면 생성할 때 첫 번째 요소에 새로운 목록:
>>> new_seq = [(2*k-1)/2. for k in nat_seq[1:]]
>>> print new_seq
[1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5]
여기서도 목록에 있는 '합' 기능을 사용할 수 있습니다.
>>> print sum(new_seq)
49.5
하지만 이 식을 사용할 수도 있습니다 (((n2+ ) /2) *2-1) /2 ',' 피할 수 있도록 반복 끝날거요 요소:
>>> print (((new_seq[-1]*2+1)/2)**2-1)/2
49.5
쉽게 알려 beginner -
>. 메시지 = ", 이는 노드전역! ". >. >. >. 데프 주 (): >. 글로벌 메시지 >. 메시지 = ", 이는 local". >. 보기인쇄 (메시지) >. >. >. 주 () >. # 출력입니다 ", 이는 local". - From the 함수 호출 >. 보기인쇄 (메시지)
이 개념은 호출됨 섀도잉
>. num = [1, 2, 3, 4, 5] >. >. var = 0 >. >. >. 데프 거액을 (): >. 수 있는 num: >. 글로벌 var >. var = var + 숫자 >. 보기인쇄 (var) >. >. >. # 39, & # 39 main& name 경우 =. >. 둔 ()
출력입니다 = 15
짧고 간단한:
def ave(x,y):
return (x + y) / 2.0
map(ave, a[:-1], a[1:])
>>> a = range(10)
>>> map(ave, a[:-1], a[1:])
[0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5]
파이썬 처리하는 방식으로 인해 일부 우둔, 2 개 이상의 '' 너 '를 할 목록에 매핑해야 열거합니다 잘라냅니다 [1]'. # 39 로 사용할 경우, d '' 아르투르스트리마프 you& 작동하잖아 더 있을 것으로 기대하고 있다.
>>> import itertools
>>> itertools.imap(ave, a, a[1:])
<itertools.imap object at 0x1005c3990>
>>> list(_)
[0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5]
Name. domain. '페어' [아르투르스 레시피] (http://docs.python.org/library/itertools.html # 비법을):
import itertools
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = itertools.tee(iterable)
next(b, None)
return itertools.izip(a, b)
def pair_averages(seq):
return ( (a+b)/2 for a, b in pairwise(seq) )
현재 이 쉽게 쓸 수 있다.
from __future__ import division
# ^- so that 3/2 is 1.5 not 1
def averages( lst ):
it = iter(lst) # Get a iterator over the list
first = next(it)
for item in it:
yield (first+item)/2
first = item
print list(averages(range(1,11)))
# [1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5]
난 '때' 사용하여 루프를 내려받습니다 결과:.
i = 0
while i < len(a)-1:
result = (a[i]+a[i+1])/2
print result
i +=1
반복하고 있는 요소 목록 및 업데이트하십시오 총 다음과 같습니다.
def sum(a):
total = 0
index = 0
while index < len(a):
total = total + a[index]
index = index + 1
return total
정신을 아르투르스. 페어 에서 영감을 레시피.
from itertools import tee, izip
def average(iterable):
"s -> (s0,s1)/2.0, (s1,s2)/2.0, ..."
a, b = tee(iterable)
next(b, None)
return ((x+y)/2.0 for x, y in izip(a, b))
예를 들면 다음과 같다:
>>>list(average([1,2,3,4,5]))
[1.5, 2.5, 3.5, 4.5]
>>>list(average([1,20,31,45,56,0,0]))
[10.5, 25.5, 38.0, 50.5, 28.0, 0.0]
>>>list(average(average([1,2,3,4,5])))
[2.0, 3.0, 4.0]
n = int(input("Enter the length of array: "))
list1 = []
for i in range(n):
list1.append(int(input("Enter numbers: ")))
print("User inputs are", list1)
list2 = []
for j in range(0, n-1):
list2.append((list1[j]+list1[j+1])/2)
print("result = ", list2)