- 리스트에 적용할 수 있는 기본 함수: 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)
다시 정신 차리고 ㅠ
정신이 너무 없다 매일매일..
'Data Analysis > Python_Grammar' 카테고리의 다른 글
[혼공파] 함수의 활용 (0) | 2022.02.27 |
---|---|
[혼공파] 함수 만들기 (0) | 2022.02.20 |
[혼공파]: 반복문과 while 반복문 (0) | 2022.02.02 |
[혼공파]: 딕셔너리와 반복문 (0) | 2022.01.19 |
[혼공파]: 리스트와 반복문 (0) | 2022.01.17 |