cs
  • 리스트에 적용할 수 있는 기본 함수: min(), max(), sum()
  • 리스트 뒤집기: reversed()
  • 현재 인덱스가 몇 번째인지 확인하기: enumerate()
  • 딕셔너리로 쉽게 반복문 작성하기: items()
  • 리스트 안에 for문 사용하기: 리스트 내포

 

리스트에 적용할 수 있는 기본 함수: min(), max(), sum()

-> 간단해서 넘어가겠다. 

 

reversed()함수로 리스트 뒤집기

리스트를 뒤집는 함수인데, 어느 부분에서 리스트를 뒤집는 함수가 필요한지는 아직 잘 모르겠지만 일단 알고 넘어가보자

#리스트 선언하고 뒤집기?
list_a = [1,2,3,4,5]
list_reversed = reversed(list_a)

#출력
print('# reversed() 함수')
print("reversed([1,2,3,4,5]):", list_reversed)
print("list(reversed([1,2,3,4,5])):", list(list_reversed))
print()

* reversed() 함수의 결과는 제너레이터 -> 즉 for 문 안에서도 곧바로 넣어서 사용 가능하다고 함

 

 

확장슬라이싱  [::-1]

-> 리스트를 뒤집는 추가적인 방법

둘다 장단점이 있고 쓰임이 다르겠지만, 

reversed는 직관적이고 [::-1] 는 편한?정도??

 

 

enumerate()함수와 반복문 조합하기

enumerate뜻이 '하나씩 세다' 이런뜻이니까 뭐 리스트를 하나씩 열거해주는 함수?

 

방법이 여러가지 있는데,, 

example_list = ["요소A", "요소B", "요소C"]
i = 0

#1번
for item in example_list:
    print("{}번째 요소는 {}입니다.".format(i, item))
    i += 1
    

#2번
for i in range(len(example_list)):
    print("{}번째 요소는 {}입니다.".format(i, example_list[i]))

 

두  for문 모두 동일한 결과를 가지고 오는데, 다른 더 간단한것도 있다고하니까..

그래서 enumerate()함수가 나온 것 같은데, 예제를 써보자.

 

 

#list()함수로 변환 후 출력
print("#list()함수로 변환 후 출력하기")
print(list(enumerate(example_list)))
print()



print("#반복문과 조합하기")

#i번째와 그 안의 값
for i, value in enumerate(example_list):
    print("{}번째 요소는{}입니다.".format(i, value))

 

상당히 괜찮아 보인다.

첫번째 list함수로 변환해서 하는건, 그냥 리스트로 열거하는 것 뿐인데, 

아래의 for문은 위보다 더 간단하고 i, value를 통해서 순서와 값 딱 눈에 보인다. 

 

 

딕셔너리의 items()함수와 반복문 조합하기 

##변수 선언 
example_dictionary = {
    "키A": "값A",
    "키B": "값B",
    "키C": "값C",
}



#딕셔너리의 itmes()함수 결과 출력하기 
print("# 딕셔너리의 items()함수")

print("items():", example_dictionary.items())
print()


## for 반복문과 items()함수 조합
print("#딕셔너리의 items()함수와 반복문 조합하기")

for key, element in example_dictionary.items():
    print("dictionary[{}] = {}".format(key, element))

items()함수를 통해서 key값, 그리고 element를 모두 쉽게 불러올수있다. -> key, element

 

 

리스트 내포

반복문을 사용해서 리스트를 재조합하는 경우. 

#변수 선언 
array =[]

#반복문 적용 
## range(0에서 20사이의 수 중, 짝수를 고르는것)
### i*i니까 제곱
for i in range(0, 20, 2):
    array.append(i*i)

print(array)

 

이걸 좀 더 간단하게 한줄로 가능하다고 한다

#리스트 선언과 동시에 for문에서 i*i 결과를 한줄로
array = [i*i for i in range(0, 20, 2)]

#출력
print(array)

-> 위와 동일한 결과를 가지고 오면서 한줄로 쉽게 변경이 가능

if를 통해 조건식도 줄 수 있음

 

  • 리스트 이름 = [표현식 for 반복자 in 반복할 수 있는것]
  • 리스트 이름 = [표현식 for 반복자 in 반복할 수 있는것 if 조건문]

 

구문 내부에 여러 줄 문자열을 사용했을 때의 문제점 -> 들여쓰기를 포함하지 않고 출력하는 방식 

#변수 선언 
number = int(input("정수 입력 > "))

#if조건문으로 홀수 짝수 구분
if number %2 ==0:
    print("입력한 문자열은 {}입니다.\n{}는(은) 짝수입니다.".format(number, number))
else:
    print("입력한 문자열은 {}입니다.\n{}는(은) 홀수입니다.".format(number, number))

->print문에 \n을 넣어줌으로써 줄 바꿈이 가능하고 더 깔끔하게 출력이 가능 

 

또 join()함수를 사용해서 해결가능.

  • 문자열.join(문자열로 구성된 리스트)
#변수 선언 
number = int(input("정수 입력 > "))


#if조건문으로 홀수 짝수 구분
if number %2 ==0:
    print("\n".join([
        "입력한 문자열은 {}입니다.",
        "{}는(은) 짝수입니다."
    ]).format(number, number))
else:
    print("\n".join([
        "입력한 문자열은 {}입니다.",
        "{}는(은) 홀수입니다."
    ]).format(number, number))

 

이터레이터 (iterator)

반복문의 기본적 구문은 

  • for 반복자 in 반복할 수 있는 것

-> '반복할 수 있는 것' = 이터러블(iterable)

 

 


다시 정신 차리고 ㅠ 

정신이 너무 없다 매일매일.. 

+ Recent posts