목록의 모든 쌍 사이에 차이점을 찾는 프로그램을 만들려고합니다. 예를 를 들어 [2,4,6] 는 할 수있는 방법이 있나요 목록의 차이 [2,2] 을 포함 만들 것이목록의 쌍에있는 Python 3.3 함수
답변
Itertools Recipes : pairwise
from itertools import tee
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return zip(a, b)
def diffs(iterable):
return [b - a for a, b in pairwise(iterable)]
print(diffs([2,4,6]))
[L[i+1] - L[i] for i in range(len(L)-1)]
것은 할 것 그것.
[L[i+1] - L[i] for i in range(len(L[:-1]))]
[L[i] - L[i-1] for i in range(1, len(L[1:]))]
이 map
을 사용하여 : : 또한 지능형리스트를 사용하여
일부 다른 방법
list(map(lambda i: L[i+1]-L[i], range(len(L[:-1]))))
list(map(lambda i: L[i]-L[i-1], range(1, len(L[1:]))))
operator
모듈 사용 16,
:
list(map(operator.sub, L[1:], L[:-1]))
이 zip
을 사용하여 (이 사람은 이모, 아마 가장 좋은 방법입니다) :
[x - y for x, y in zip(L[1:], L[:-1])]
더 자세한 방법이없는 경우 목록 이해력에 익숙하거나 map
(GET FAMILIAR!) :
그리고 발전기 사용하여 할 수있는 유사하지만 훨씬 더 좋은 방법 : 여기
def differences(L1,L2):
for V1,V2 in zip(L1,L2):
yield V2-V1
diffs = list(differences(L[:-1],L[1:]))
그리고 위의 발전기의 발전기 이해와 동일 (거의 정확하게 위의 마지막 지능형리스트와 동일합니다 통지 , 대신 브래킷의 목록 기능)를 사용 제외 :
list(V2-V1 for V1,V2 in zip(L[:-1],L[1:]))
연구 매우 밀접하게 그 일을 당신은 파이썬의 많은 것을 배울 것입니다 이러한 방법을 모두.
나는 당신이 '[L [i] - L [i-1] 범위 (1, len (L))]에있는 i를 의미한다고 생각합니다.' –
그래, 그랬어! 감사. –
- 1. Python 3.3 pandas, pip-3.3
- 2. Python 3.3 - 함수 내부에서 Tkinter 객체 액세스
- 3. Python 3.3 : Birthday Probability
- 4. pyHook for Python 3.3
- 5. PyQT5 Python 3.3 Pycharm
- 6. Python 3.3 Console NameError
- 7. 목록의 모든 항목에 함수 사용 python
- 8. PyGame/Python 3.3 - 비디오 재생
- 9. 리눅스 터미널 쉘용 Python 3.3
- 10. 사진 찍기 opencv + python 3.3
- 11. Python 3.3 - 테이블의 정보 포맷하기
- 12. Python 3.3 : TabError in Print
- 13. Grok Learning Python 3.3 Files
- 14. Python 3.3 대 루프 중에 느려짐
- 15. 목록의 무작위 요소 - Python
- 16. 파이썬 3.3 바이너리에서 16 진수 함수
- 17. Python 3.3 직렬 키 생성기 목록 문제
- 18. Python 목록의 이상한 동작
- 19. Python 함수
- 20. Embedding Python 3.3 : _PyParser_Grammar에 어떻게 액세스합니까?
- 21. PyGame 1.9.1/Python 3.3/Mac 10.6
- 22. Python 3.3 Tkinter 변경 LabelFrame 위치
- 23. Python 3.3 : 오류를 제공하는 분리 인수 (sep)
- 24. Python 3.3 실행 내 웹 페이지에서
- 25. 왜이 목록 복제 결과가 이상하게 (python 3.3)
- 26. Socketerver.handle() 내에서 mutables 변경 - Python 3.3
- 27. PyBluez 및 Python 3.3 windows 64 비트
- 28. Python 3.3 itertools 길이가 5 인 map
- 29. Python 3.3. 입력에서 문자열 연결. 방법?
- 30. Python 3.3 카트리지의 openshift.conf를 변경하거나 재정의하는 방법
예, 분명히 * 이렇게 *하는 방법이 있습니다. 너 뭐 해봤 니? –
투표가 중단되는 것을 피하려면 지금까지 시도한 코드가 작동하지 않는 경우에도 제공해야합니다. –