Python 기초: 일반적인 데이터 구조에 대한 반복

Python 기초: 일반적인 데이터 구조에 대한 반복



루핑은 프로그래밍의 필수 요소입니다.
길이가 다를 수 있는 데이터 구조가 주어지면 각 요소에 대해 작업을 반복하려는 것이 일반적입니다.
코드에서 일반적인 작업을 반복하는 대신 루핑을 사용하여 데이터 구조의 모든 요소를 ​​반복할 수 있습니다.

Python에서 일반적인 데이터 구조를 반복하는 방법에 대한 몇 가지 예를 제공합니다(string , list , tuple & dictionary ).

이것은 for 루프를 커버하고 while 루프를 커버하지 않습니다.
루프 내부의 변수 이름은 사용자가 정의할 수 있지만 이해하기 쉽고 코드를 읽을 수 있는 변수 이름을 사용해야 합니다.

문자열 반복


문자에 대한 간단한 루핑



sentence = "How to loop over a string?"
for character in sentence:
    # here you can do any operation which will be repeated
    # for each character in the sentence.
    print(character)

문자 및 위치 반복



인덱스 또는 위치를 사용하여 Python에서 astring의 문자에 액세스할 수 있습니다.

예를 들어 s = "Baz" 이면 s[0] == 'B' , s[1] == 'a's[2] == 'z' 입니다.

Python의 첫 번째 요소에 대해 index가 0부터 시작한다는 것을 알 수 있습니다.
이것은 string , listtuple 에 대해 동일합니다.

sentence = "How to loop over a string with the position?"
for position, character in enumerate(sentence):
    # here you can do any operation which will be repeated
    # for each position and character in the sentence 
    # using the "enumerate" function.
    print(position, character)


목록 반복



요소에 대한 간단한 루핑




grades = [11, 18, 16, 19, 14]
for grade in grades:
    # here you can do any operation which will be repeated
    # for each grade in the grades list.
    print(grade)


요소 및 위치 반복



인덱스 또는 위치를 사용하여 Python에서 alist의 요소에 액세스할 수 있습니다.

예를 들어 l = [2, 0, 1] 이면 l[0] == 2 , l[1] == 0l[2] == 1 입니다.

grades = [11, 18, 16, 19, 14]
for position, grade in enumerate(grades):
    # here you can do any operation which will be repeated
    # for each position and grade in the grades list 
    # using the "enumerate" function.
    print(position, grade)


튜플에 대한 반복



Atuple는 요소의 immutable 컨테이너입니다. 즉, 요소가 정의된 후에는 요소를 변경/추가/제거할 수 없습니다.
tuple를 반복하는 것은 list를 반복하는 것과 같습니다.

요소에 대한 간단한 루핑




names = ("Jane", "John", "Janet")
for name in names:
    # here you can do any operation which will be repeated
    # for each name in the names tuple.
    print(name)


요소 및 위치 반복



인덱스 또는 위치를 사용하여 Python에서 atuple의 요소에 액세스할 수 있습니다.

예를 들어 t = (1, 2) 이면 t[0] == 1t[1] == 2 입니다.

names = ("Jane", "John", "Janet")
for position, name in enumerate(names):
    # here you can do any operation which will be repeated
    # for each position and name in the names list 
    # using the "enumerate" function.
    print(position, name)


사전 반복



Adictionary는 "키/값"쌍의 컨테이너, 즉 요소의 매핑입니다.

키를 사용하여 Python에서 adictionary의 요소에 액세스할 수 있습니다.

예를 들어 d = {"foo": 1, "bar": 2} 이면 d["foo"] == 1d["bar"] == 2 입니다.

키에 대한 간단한 루핑


dictionary 에 대한 간단한 루프는 dictionary 의 키를 반복합니다.

ages = {"Jane": 25, "John": 26, "Janet": 24}
for name in ages:
    # here you can do any operation which will be repeated
    # for each name (key) in the ages dictionary.
    # you can access the value with the key:
    age = ages[name]
    print(name, age)


키/값 쌍에 대한 반복



사전의 items 메서드는 모든 키/값 쌍을 반환합니다.
이렇게 하면 키/값 쌍을 직접 반복할 수 있습니다.

ages = {"Jane": 25, "John": 26, "Janet": 24}
for name, age in ages.items():
    # here you can do any operation which will be repeated
    # for each name (key) and age (value) in the ages dictionary.
    print(name, age)


값 반복



사전의 values 메서드는 list 의 모든 값을 반환합니다.
이렇게 하면 키/값 쌍을 직접 반복할 수 있습니다.

ages = {"Jane": 25, "John": 26, "Janet": 24}
for age in ages.values():
    # here you can do any operation which will be repeated
    # for each age (value) in the ages dictionary.
    print(age)


실제로 루핑



사용 사례 1: 목록의 합계



알 수 없거나 다양한 크기의 등급list이 주어지면 루핑을 사용하여 합계를 계산할 수 있습니다.

grades = [11, 18, 16, 19, 14]
# initialize sum of grades to 0
sum_of_grades = 0
for grade in grades:
    # add current grade to the total sum
    sum_of_grades = sum_of_grades + grade

# check result is correct:
assert 78 == sum_of_grades


사용 사례 2: 목록의 평균



이것은 위와 동일하며 합계를 list의 길이로 나누고 2 소수점으로 반올림하면 됩니다.

grades = [11, 18, 16, 19, 14]
# initialize sum of grades to 0
sum_of_grades = 0
for grade in grades:
    # add current grade to the total sum
    sum_of_grades = sum_of_grades + grade

avg_of_grades = round(sum_of_grades / len(grades), 2)
# check result is correct:
assert 15.6 == avg_of_grades


사용 사례 3: 성적 사전



이름이 키인 dictionary와 알 수 없는/다양한 크기의 값인 성적list이 주어지면 루프를 사용하여 각 학생의 평균을 계산할 수 있습니다.

grades_dict = {"Jane": [14, 16], "John": [11, 12], "Janet": [18, 16]}
# initialize result to an empty dictionary:
avg_of_grades_dict = {}
for name, grades in grades_dict.items():
    # do the same as above inside the loop for each student:
    sum_of_grades = 0
    for grade in grades:
        # add current grade to the total sum
        sum_of_grades = sum_of_grades + grade
    # compute the average for the student:
    avg_of_grades = round(sum_of_grades / len(grades), 2)
    # save the avg in a result dictionary for the student:
    avg_of_grades_dict[name] = avg_of_grades


# check result is correct:
assert {"Jane": 15.0, "John": 11.5, "Janet": 17.0} == avg_of_grades_dict


사용 사례 4: 문자열의 일반 문자(제자리)



(string 유형의) 두 단어가 주어지면 루핑을 사용하여 동일한 위치에서 공통 문자를 찾을 수 있습니다.

name = "Jean"
surname = "John"
# initialize result to an empty list:
common_letters_in_place = []
# loop over position and letters in a string with enumerate:
for position, letter in enumerate(name):
    # check if letters in both string are the same at the same position:
    if letter == surname[position]:
        common_letters_in_place.append(letter)


# check result is correct:
assert ['J', 'n'] == common_letters_in_place


암호



이 블로그 게시물의 모든 코드는 여기replit에서 찾을 수 있습니다.

좋은 웹페이지 즐겨찾기