Python foreach 등가물
Python에 뛰어들고 있는데 Foreach 반복에 대해 질문이 있습니다.Python은 처음이고 C#에 경험이 있습니다.그래서 저는 Python에 제 컬렉션에 있는 모든 아이템에 대해 같은 기능을 반복할 수 있는지 궁금합니다.
pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
뭐 이런 거.
그럼요. 루프는 A죠.
for f in pets:
print f
다음과 같이 합니다.
for pet in pets :
print(pet)
사실 Python은 foreach 스타일만 가지고 있습니다.for
루프
이것을 관찰하는 것도 흥미롭다.
시퀀스의 인덱스에 대해 반복하기 위해range()
그리고.len()
다음과 같습니다.
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
산출량
0 Mary
1 had
2 a
3 little
4 lamb
편집 #1: 대체 방법:
시퀀스를 루프할 때 위치 인덱스와 해당 값을 동시에 검색할 수 있습니다.enumerate()
기능.
for i, v in enumerate(['tic', 'tac', 'toe']):
print(i, v)
산출량
0 tic
1 tac
2 toe
갱신된 답변에 대해서는forEach
Python에서 쉽게 기능:
def forEach(list, function):
for i, v in enumerate(list):
function(v, i, list)
또, 이것을,map
,reduce
,filter
다른 언어 또는 우선 순위에서 가져온 기타 어레이 기능.루프는 충분히 빠르지만 보일러 판은 더 길다.forEach
또는 다른 기능을 사용합니다.또한 목록에 직접 호출할 수 있도록 클래스에 대한 로컬 포인터를 사용하여 이러한 함수를 포함하도록 목록을 확장할 수도 있습니다.
위의 답변은 유효하지만 dict {key:value}를 반복하는 경우에는 다음과 같은 방법을 사용합니다.
for key, value in Dictionary.items():
print(key, value)
따라서 사전의 모든 키와 값을 문자열화하는 등의 작업을 수행할 경우 다음을 수행합니다.
stringified_dictionary = {}
for key, value in Dictionary.items():
stringified_dictionary.update({str(key): str(value)})
return stringified_dictionary
이렇게 하면 이런 유형의 반복을 적용할 때 불규칙한 동작을 일으킬 수 있는 변환 문제를 피할 수 있습니다.
dict의 경우 for 루프를 사용하여 반복할 수 있습니다.index
,key
그리고.value
:
dictionary = {'a': 0, 'z': 25}
for index, (key, value) in enumerate(dictionary.items()):
## Code here ##
그foreach
construct는 불행히도 컬렉션에 고유한 것이 아니라 컬렉션 외부에 있습니다.결과는 두 가지입니다.
- 쇠사슬에 묶을 수 없다
- 관용어인 비단뱀으로 된 두 줄이 필요합니다.
Python은 true를 지원하지 않습니다.foreach
직접 소장하고 있습니다.예를 들면 다음과 같습니다.
myList.foreach( a => print(a)).map( lambda x: x*2)
하지만 비단뱀은 지원하지 않습니다.python의 이 기능 및 기타 기능 누락에 대한 부분 수정은 다양한 서드파티 라이브러리에서 제공되고 있습니다.이 라이브러리에는 필자를 도운 것도 포함되어 있습니다.https://pypi.org/project/infixpy/를 참조하십시오.
이 방법은 효과가 있었습니다.
def smallest_missing_positive_integer(A):
A.sort()
N = len(A)
now = A[0]
for i in range(1, N, 1):
next = A[i]
#check if there is no gap between 2 numbers and if positive
# "now + 1" is the "gap"
if (next > now + 1):
if now + 1 > 0:
return now + 1 #return the gap
now = next
return max(1, A[N-1] + 1) #if there is no positive number returns 1, otherwise the end of A+1
언급URL : https://stackoverflow.com/questions/40346498/python-foreach-equivalent
'programing' 카테고리의 다른 글
임시 테이블의 크기를 제한하려면 어떻게 해야 하나요? (0) | 2022.12.20 |
---|---|
@Null 주석 사용법 (0) | 2022.12.20 |
php 사이트의 브라우저 캐시를 방지하는 방법 (0) | 2022.12.20 |
MariaDB - 두 엔티티 간에 다수의 관계 테이블을 만듭니다. (0) | 2022.12.20 |
Nuxt.js에서 rootGetters를 사용하는 데 문제가 있습니다. (0) | 2022.12.20 |