# 리스트 사용방법
[요소, 요소, 요소...]
#리스트 생성 모양
>>> [1, 2, 3, 4] # 숫자만으로 구성된 리스트
[1, 2, 3, 4]
>>>["안", "녕", "하", "세", "요"] # 문자열만으로 구성된 리스트
['안', '녕', '하', '세', '요']
>>> [273, 32, 103, "문자열", True, False] # 여러 자료형으로 구성된 리스트
[273, 32, 103, '문자열', True, False]
#리스트 생성 / 선언
>>> list_a = [273, 32, 103, "문자열", True, False] # 리스트 생성
>>> list_a[0] # 인덱스 입력
>>> 273 #값 출력
#요소 변경
>>> list_a[0] = "변경"
>>> list_a
['변경', 32, 103, "문자열", True, False]
>>> list_a = [273, 32, 103, "문자열", True, False]
>>> list_a[-1] # 맨 뒤의 1번째 값 출력
False
>>> list_a[-2] # 맨 뒤의 2번째 값 출력
True
>>> list_-3] # 맨 뒤의 3번째 값 출력
'문자열'
>>> list_a = [273, 32, 103, "문자열", True, False]
>>> list_a[3]
'문자열'
>>> list_a[3][0]
'문'
>>> list_a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> list_a[1]
[4,5,6]
>>> list_a[1][1]
5
>>> list_a = [273, 32, 103]
>>> list_a[3]
IndexError: list index out of range
# 리스트 선언
list_a = [1, 2, 3]
list_b = [4, 5, 6]
# 출력
print("#리스트")
print("list_a =", list_a)
print("list_b =", list_b)
print()
# 기본 연산자
print("#리스트 기본 연산자")
print("list_a + list_b =", list_a + list_b)
print("list_a * 3", list a * 3)
print()
# 함수
print("#길이 구하기")
print("len(list_a) = ", len(list_a))
#실행 결과
----------
# 리스트
list_a = [1, 2, 3]
list_b = [4, 5, 6]
# 리스트 기본 연산자
list_a + list_b = [1, 2, 3, 4, 5, 6]
list_a * 3 = [1, 2, 3, 1, 2, 3, 1, 2, 3]
# 길이 구하기
len(list_a) = 3
append() 사용법 : 리스트명.append(요소)
insert() 사용법 : 리스트명.insert(위치, 요소)
extend() 사용법 : 리스트명.extend(요소, 요소, 요소...)
# 리스트 선언
list_a = [1, 2, 3]
# 리스트 뒤에 요소 추가히기
print("# 리스트 뒤에 요소 추가하기")
list_a.append(4)
list_a.append(5)
print(list_a)
print()
# 리스트 뒤에 요소 여러개 추가하기
print("# 리스트 뒤에 요소 여러개 추가하기")
list_a.extend([6, 7, 8, 9])
print(list_a)
print()
# 리스트 중간에 요소 추가하기
print("# 리스트 중간에 요소 추가하기")
list_a.insert(0, 10)
print(list_a)
# 실행 결과
----------
#리스트 뒤에 요소 추가하기
[1, 2, 3, 4, 5]
# 리스트 뒤에 요소 여러개 추가하기
[1, 2, 3, 4, 5, 6, 7, 8, 9]
# 리스트 중간에 요소 추가하기
[10, 1, 2, 3, 4, 5]
del 리스트명[인덱스]
리스트명.pop(인덱스)
값으로 제거하기 : 리스트.remov(값)
리스트.clear()
# 요소 제거하기
list_a = [0, 1, 2, 3, 4, 5]
print("현재 리스트 :", list_a)
print()
print("#리스트의 요소 하나 제거하기_del 키워드")
# 제거 방법 : del 키워드
del list_a[1]
print("del list_a[1]:", list_a)
print()
del list_a[2:3]
print("del list_a[2:3]", list_a)
print()
print("#리스트의 요소 하나 제거하기_pop()")
# 제거 방법 : pop()
list_a.pop(2)
print("pop(2):", list_a)
print()
list_a.pop()
print("pop():", list_a)
print()
print("#리스트의 요소 값으로 제거하기")
# 제거 방법 : remove()
list_a.remove(2)
print("remove(2):", list_a)
print()
print("#리스트의 모두 제거하기")
# 제거 방법 : clear()
list_a.clear()
print("clear():", list_a)
# 실행 결과
----------
현재 리스트 : [0, 1, 2, 3, 4, 5]
#리스트의 요소 하나 제거하기_del 키워드
del list_a[1]: [0, 2, 3, 4, 5]
del list_a[2:3] [0, 2, 4, 5]
#리스트의 요소 하나 제거하기_pop()
pop(2): [0, 2, 5]
pop(): [0, 2]
#리스트의 요소 값으로 제거하기
remove(2): [0]
#리스트의 모두 제거하기
clear(): []
리스트[시작인덱스:끝인덱스:단계]
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8]
>>> numbers[0:5:2]
[1, 3, 5]
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8]
numbers[::-1] # 시작 인덱스와 끝 인덱스는 자동으로 "전부"가 저장됨
>>> [8, 7, 6, 5, 4, 3, 2, 1] # 단계가 -1이므로 반대로 출력함
리스트.sort()
>>> list_e = [52, 273, 103, 32, 275, 1, 7]
>>> list_e.sort() # 오름차순 정렬
>>> list_e
[1, 7, 32, 52, 103, 273, 275
>>> list_e.sort(reverse=True) # 내림차순 정렬
>>> list_e
[275, 273, 103, 52, 32, 7, 1]
값 in 리스트
값 not in 리스트
>>> list_a = [273, 32, 103, 57, 52]
>>> 273 in list_a
True
>>> 273 not in list_a
False
>>> 99 in list_a
False
>>> 99 not in list_a
True
for 반복자 in 반복할 수 있는 것:
. . . . 코드
# 리스트 선언
array = [273, 32, 103, 57, 52]
#리스트에 반복문 적용
for element in array:
#출력
print(element)
#문자열 반복문
character in "안녕하세요":
print("-", character)
# 실행결과
----------
273
32
103
57
52
- 안
- 녕
- 하
- 세
- 요
# 2차원 리스트에 반복문 1번 사용하기
list_of_list = [
[1, 2, 3],
[4, 5, 6, 7],
[8, 9]
]
for items in list_of_lists:
print(items)
# 실행 결과
----------
[1, 2, 3]
[4, 5, 6, 7]
[8, 9]
# 2차원 리스트에 반복문 2번 사용하기
list_of_list = [
[1, 2, 3],
[4, 5, 6, 7],
[8, 9]
]
for items in list_of_lists:
for item in items:
print(item)
# 실행 결과 --- 요소를 하나하나 출력 가능함
----------
1
2
3
4
5
6
7
8
9
*리스트 ---> 리스트[0], 리스트[1], ....
# 리스트 내부에 사용하는 경우_1
>>> a = [1, 2, 3, 4]
>>> b = [*a, *a]
>>> b
[1, 2, 3, 4, 1, 2, 3, 4]
# 리스트 내부에 사용하는 경우_2
>>> a = [1, 2, 3, 4]
>>> a.append(5)
>>> a
[1, 2, 3, 4, 5] ---> append()함수를 통하여 파괴됨
# 전개 연산자를 사용한 경우
>>> b = [1, 2, 3, 4]
>>> c = [*b, 5] ---> 전개연산자를 통하여 함수를 비파괴함
>>>
[1, 2, 3, 4]
>>> c
[1, 2, 3, 4, 5]
# 함수 매개변수 위치에 사용하는 경우
>>> a = [1, 2 , 3, 4]
>>> print(*a)
1 2 3 4
변수 ={
키: 값,
키: 값,
...
키:값,
}
>>> dict_a = {
"name" : "어벤저스 엔드게임",
"type" : "히어로 무비"
}
>>> dict_a
{'name: '어벤저스 엔드게임', 'type' : '히어로 무비'}
>>> dict_a["name"]
'어벤저스 엔드게임'
>>> dict_a["type"]
'히어로 무비'
>>> dict_b = {
"director" : ["안소니 루소", "조 루소"],
"cast" : ["아이언맨", "타노스", "토르", "딕터스트레인지", "헐크"]
}
>>> dict_b
{'director' : ['안소니 루소', '조 루소'], 'cast' : ['아이언맨', '타노스', '토르', '닥터스트레인지', '헐크']}
>>> dict_b["director"]
['안소니 루소', '조 루소']
# 딕셔너리의 요소에 접근하기
# 딕셔너리 선언
dictionary = {
"name" : "7D 건조 망고",
"type" : "당절임",
"ingredient" : ["망고", "설탕", "메타중아황산나트륨", "치자황색소"]
"origin" : "필리핀"
}
# 출력
print("name:", dictionary["name"])
print("type:", dictionary["type"])
print("ingredient:", dictionary["ingredient"])
print("origin:", dictionary["origin"])
print()
# 값 변경
dictionary["name"] = "8D 건조 망고"
print("name:", dictionary["name"]
# 실행 결과
----------
name: 7D 건조 망고
type: 당절임
ingredient: ['망고', '설탕', '메타중아황산나트륨', '치자황색소']
origin: 필리핀
name: 8D 건조 망고
자료형 | 의미 | 카리키는 위치 | 선언 형식 | 사용 예 | 틀린 예 |
---|---|---|---|---|---|
리스트 | 인덱스를 기반으로 값 저장 | 인덱스 | 변수 = [ ] | list_a[1] | |
딕셔너리 | 키를 기반으로 값 저장 | 키 | 변수 = { } | dict_a["name"] | dict_a{"name"} |
# 오류
>>> dict_key = {
name : "7D 건조 망고",
type : "당절임" ---> 여기서도 오류가 나타날 수 있지만 나타나지 않는 이유는 type은 type()함수라는 기본 식별자가 있기 때문에 이것이 키로 들어가도 오류가 나타나지 않음
}
>>> NameError : name 'name' is not defind
# 수정
>>> name = "이름"
>>> dict_key = {
name : "7D 건조 망고",
type : "당절임"
}
>>> dict_key
{'이름': '7D 건조 망고', <class 'type'>: '당절임'}
딕셔너리[새로운 키] = 새로운 값
# 딕셔너리의 요소에 접근하기
>>> dictionary = {
"name" : "8D 건조 망고",
"type" : "당절임",
"ingredient" : ["망고", "설탕", "메타중아황산나트륨", "치자황색소"]
"origin" : "필리핀"
}
>>> dictionary["price"] = 5000
>>> dictionary
{'name' : '8D 건조 망고', 'type' : '당절임', 'ingredient' : ['망고', '설탕', '메타중아황산 나트륨', '치자황색소'], 'origin' : '필리핀', 'price' : 5000} ---> price 추가됨
>>> dictionary = {
"name" : "8D 건조 망고",
"type" : "당절임",
"ingredient" : ["망고", "설탕", "메타중아황산나트륨", "치자황색소"]
"origin" : "필리핀"
}
>>> dictionary["name"] = "8D 건조 파인패플"
>>> dictionary
{'name' : '8D 건조 망고', 'type' : '당절임', 'ingredient' : ['망고', '설탕', '메타중아황산 나트륨', '치자황색소'], 'origin' : '필리핀', 'price' : 5000} ---> 새로운 값으로 대치됨
>>> dictionary = {
"name" : "8D 건조 망고",
"type" : "당절임",
"ingredient" : ["망고", "설탕", "메타중아황산나트륨", "치자황색소"]
"origin" : "필리핀"
}
>>> del dictionary["ingredient"] = "8D 건조 파인패플"
>>> dictionary
{'name' : '8D 건조 망고', 'type' : '당절임', 'origin' : '필리핀', 'price' : 5000}
>>> dictionary ={}
>>> dictionary["key"]
KeyError: 'Key'
>>> del dictionary["Key"]
KeyError: 'Key'
# 딕셔너리 선언
dictionary = {
"name" : "7D 건조 망고",
"type" : "당절임",
"ingredient" : ["망고", "설탕", "메타중아황산나트륨", "치자황색소"]
"origin" : "필리핀"
}
# 사용자로부터 입력 받음
key = input("> 접근하고자 하는 키: ")
# 출력
if key in dictionary:
print("dictionary[key])
else:
print("존재하지 않는 키에 접근하고 있습니다.")
# 실행 결과
----------
> 접근하고자 하는 키: name
7D 건조 망고
> 접근하고자 하는 키: ㅇㅂㅇ
존재하지 않는 키에 접근하고 있습니다.
# 딕셔너리 선언
dictionary = {
"name" : "7D 건조 망고",
"type" : "당절임",
"ingredient" : ["망고", "설탕", "메타중아황산나트륨", "치자황색소"]
"origin" : "필리핀"
}
# 존재하지 않는 키 접근
value = dictionary.get("존재하지 않는 키")
print("값:", value)
# None 확인 방법
if value == None:
print("존재하지 않는 키에 접근했었습니다.")
# 실행 결과
----------
값 : None
존재하지 않는 키에 접근했었습니다.
for 키 변수 in 딕셔너리:
. . . . 코드
# for 반복문과 딕셔너리
# 딕셔너리 선언
dictionary = {
"name" : "7D 건조 망고",
"type" : "당절임",
"ingredient" : ["망고", "설탕", "메타중아황산나트륨", "치자황색소"]
"origin" : "필리핀"
}
# for 반복문 사용
for key in dictionary:
#출력
print(key, ":", dictionary[key])
# 실행 결과
----------
name : 7D 건조 망고
type : 당절임
ingredient : ['망고', '설탕', '메타중아황산나트륨', '치자황색소']
origin : 필리핀
>>> list(range(0, 5))
[0, 1, 2, 3, 4]
>>> list(range(0, 10, 2))
[0, 2, 4, 6, 8]
>>> a = range(0, 10+1)
>>> list(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> n = 10
>>> a = range(0, n / 2)
TypeError: 'float' object cannot be interpreted as an integer
>>> n = 10
>>> a range(0, int(n/2))
>>> list(a)
[0, 1, 2, 3, 4)
>>> n = 10
>>> a = range(0, n // 2)
>>> list(a)
[0, 1, 2, 3, 4]
for 숫자 변수 in 범위:
. . . . 코드
# for 반복문과 범위를 함께 조합해서 사용
for i in range(5):
print(str(i) + "=반복 변수")
print()
for i in range(5, 10):
print(str(i) + "=반복 변수")
print()
for i in range(0, 10, 3):
print(str(i) + "=반복 변수")
print
# 실행 결과
----------
0=반복 변수
1=반복 변수
2=반복 변수
3=반복 변수
4=반복 변수
5=반복 변수
6=반복 변수
7=반복 변수
8=반복 변수
9=반복 변수
0=반복 변수
3=반복 변수
6=반복 변수
9=반복 변수
# 리스트 선언
array = [273, 32, 103, 57, 52]
# 리스트에 반복문 적용
for i in range(len(array)):
# 출력
print("{}번째 반복: {}".format(i, array[i]))
# i : 순서번호
# array[i] : 각 순서에 있는 값
# 실행 결과
----------
0번째 반복: 273
1번째 반복: 32
2번째 반복: 103
3번째 반복: 57
4번째 반복: 52
# range() 함수 사용
for i in range(4, 0 - 1, -1):
#출력
print("현재 반복 변수: {}".format(i))
# 실행 결과
----------
현재 반복 변수: 4
현재 반복 변수: 3
현재 반복 변수: 2
현재 반복 변수: 1
현재 반복 변수: 0
# reversed() 함수 사용
for i in reversed(range(5)):
# 출력
print("현재 반복 변수: {}".format(i))
# 실행 결과
----------
현재 반복 변수: 4
현재 반복 변수: 3
현재 반복 변수: 2
현재 반복 변수: 1
현재 반복 변수: 0
while 불 표현식:
. . . . 문장
while True:
# "."을 출력함
# 기본적으로 END가 "\n"이라 줄바꿈이 일어남
# 빈 문자열 ""로 바꿔서 줄바꿈이 없음
print(".", end = "")
# "."이 무한반복으로 출력됨
# 강제종료 Ctrl + C를 눌러서 종료 가능함
# 반복 변수 기반으로 반복하기
i = 0
while i < 10:
print("{}번째 반복입니다.".format(i))
i += 1
# 실행 결과
----------
0번째 반복입니다.
1번째 반복입니다.
2번째 반복입니다.
3번째 반복입니다.
4번째 반복입니다.
5번째 반복입니다.
6번째 반복입니다.
7번째 반복입니다.
8번째 반복입니다.
9번째 반복입니다.
list_test = [1, 2, 1, 2]
value = 2
while value in list_test:
list_test.remove(value)
#출력
print(list_test)
# 실행 결과
----------
[1, 1]
import time ----> 시간과 관련된 기능 가져옴
time.time() ----> 유닉스 타임 구하기
# 5초동안 반복하는 코드
import time
# 변수 선언
number = 0
# 5초동안 반복
target_tick = time.time() + 5
while time.time() < target_tick:
number += 1
# 출력
print("5초동안 {}번 반복했습니다.".format(number)
# 실행 결과
----------
5초동안 31473573번 반복했습니다.
# 변수 선언
i = 0
# 무한 반복
while True:
# 몇 번째인지 출력
print("{}번째 반복문입니다.".format(i))
i += 1
# 반복 종료
input_text = input("> 종료하시겠습니까?(y/n): ")
if input_text in ["y", "Y"]:
print("반복을 종료합니다.")
break
# 실행 결과
----------
0번째 반복문입니다.
1번째 반복문입니다.
2번째 반복문입니다.
3번째 반복문입니다.
4번째 반복문입니다.
반복을 종료합니다.
# 변수 선언
numbers = [5, 15, 6, 20, 7, 25]
# 반복 돌리기
for number in numbers:
# number가 10보다 작으면 다음 반복문으로 넘어가기
if number < 10:
continue
# 출력
print(number)
# 실행 결과
----------
15
20
25
함수 | 설명 |
---|---|
min() | 리스트 내부에서 최솟값을 찾음 |
max() | 리스트 내부에서 최댓값 찾음 |
sum() | 리스트 내부에서 값을 모두 더함 |
temp = reversed([1, 2, 3, 4, 5, 6])
for i in temp:
print("첫 번째 반복문 : {}".format(i))
for i in temp:
print(" 두 번째 반복문: {}".format(i))
# 실행 결과
----------
첫 번째 반복문 : 6
첫 번째 반복문 : 5
첫 번째 반복문 : 4
첫 번째 반복문 : 3
첫 번째 반복문 : 2
첫 번째 반복문 : 1
numbers = [1, 2, 3, 4, 5, 6]
for i in reversed(numbers):
print("첫 번째 반복문 : {}".format(i))
for i i nreversed(numbers):
print(" 두 번째 반복문: {}".format(i))
# 실행 결과
----------
첫 번째 반복문 : 6
첫 번째 반복문 : 5
첫 번째 반복문 : 4
첫 번째 반복문 : 3
첫 번째 반복문 : 2
첫 번째 반복문 : 1
두 번째 반복문: 6
두 번째 반복문: 5
두 번째 반복문: 4
두 번째 반복문: 3
두 번째 반복문: 2
두 번째 반복문: 1
# 변수 선언
example_list = ["요소A", "요소B", "요소C"]
# 그냥 출력
print("# 단순 출력")
print(example_list)
print()
# enumerate() 함수를 적용하여 출력
print("# enumerate() 함수 적용 출력")
print(enumerate(example_list))
print()
# list() 함수로 강제 변환해 출력
print("# list() 함수로 강제 변환 출력")
print(list(enumerate(example_list)))
print()
# for 반복문과 enumerate() 함수 조합해서 사용
print("# 반복문과 조합하기")
for i, value in enumerate(example_list):
print("{}번째 요소는 {}입니다.".format(i, value))
# 실행 결과
----------
# 단순 출력
['요소A', '요소B', '요소C']
# enumerate() 함수 적용 출력
<enumerate object at 0x000001AC38843830>
# list() 함수로 강제 변환 출력
[(0, '요소A'), (1, '요소B'), (2, '요소C')]
# 반복문과 조합하기
0번째 요소는 요소A입니다.
1번째 요소는 요소B입니다.
2번째 요소는 요소C입니다.
# 변수 선언
example_dictionary = {
"키A" : "값A",
"키B" : "값B",
"키C" : "값C",
}
# 딕셔너리 items() 함수 결과 출력하기
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() 함수
items(): dict_items([('키A', '값A'), ('키B', '값B'), ('키C', '값C')])
# 딕셔너리의 items() 함수와 반복문 조합하기
dictionary[키A] = 값A
dictionary[키B] = 값B
dictionary[키C] = 값C
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것]
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것 if 조건문]
# 변수 선언
array = []
# 반복문 적용
for i in range(0, 20, 2):
array.append(i * i)
# 출력
print(array)
# 실행 결과
----------
[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
# 리스트 안에 for문
array = [i * i for i in range(0, 20, 2)]
#출력
print(array)
# 실행 결과
----------
[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
# 조건을 활용한 리스트 내포
# 리스트 선언
array = ["사과", "자두", "초콜릿", "바나나", "체리"]
output = [fruit for fruit in array if fruit != "초콜릿"]
#출력
print(output)
함수 | list_a의 값 |
---|---|
list_a.extend(list_a) | [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7] |
list_a.append(10) | [0, 1, 2, 3, 4, 5, 6, 7, 10] |
list_a.insert(3, 0) | [0, 1, 2, 0, 3, 4, 5, 6, 7] |
list_a.remove(3) | [0, 1, 2, 4, 5, 6, 7] |
list_a.pop(3) | [0, 1, 2, 4, 5, 6, 7] |
list_a.clear() | [] |
#extend() : 한 번에 여러 요소 추가
list_a = [0, 1, 2, 3, 4, 5, 6, 7]
list_a.extend(list_a) # 리스트 a추가
print(list_a)
# 실행 결과
----------
[0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
# append() : 리스트 뒤에 요소 추가
list_a = [0, 1, 2, 3, 4, 5, 6, 7]
list_a.append(10) # 10 추가
print(list_a)
# 실행 결과
----------
[0, 1, 2, 3, 4, 5, 6, 7, 10]
# insert() : 리스트 중간에 요소 추가
list_a = [0, 1, 2, 3, 4, 5, 6, 7]
list_a.insert(3, 0) # 3번째 위치에 0 추가
print(list_a)
# 실행 결과
----------
[0, 1, 2, 0, 3, 4, 5, 6, 7]
# remove() : 값 제거
list_a = [0, 1, 2, 3, 4, 5, 6, 7]
list_a.remove(3) # 3 제거
print(list_a)
# 실행 결과
----------
[0, 1, 2, 4, 5, 6, 7]
# pop : 제거하고 싶은 위치의 요소 제거
list_a = [0, 1, 2, 3, 4, 5, 6, 7]
list_a.pop(3) # 3번째 위치요소 제거
print(list_a)
# 실행 결과
----------
[0, 1, 2, 4, 5, 6, 7]
# clear : 리스트 내부 요소 모두 제거
list_a = [0, 1, 2, 3, 4, 5, 6, 7]
list_a.clear()
print(list_a)
# 실행 결과
----------
[]
리스트에서 몇 가지 종류의 숫자가 사용되었는지 구하기
# 입력
[1, 2, 3, 4, 1, 2, 3, 1, 4, 1, 2, 3]
# 출력 형식
[1, 2, 3, 4, 1, 2, 3, 1, 4, 1, 2, 3]에서
사용된 숫자의 종류는 4개입니다.
참고: {1: 4, 2: 3, 3: 3, 4: 2}
list_a = [1, 2, 3, 4, 1, 2, 3, 1, 4, 1, 2, 3]
count = {} # 딕셔너리 생성
for i in list_a: # i가 list_a에 있는 동안
if i not in count: # 만약에 count에 i가 없으면
count[i] = 0 # count값은 0
count[i] += 1 # count에 1씩 추가
'''
for i in list_a: # i가 list_a에 있는 동안
if i not in count: # 만야게 count에 i가 없으면
count[i] = 1 # count 기본 값은 1
else: # 아니면
count[i] += 1 # count에 +1씩 추가
'''
print(f"{list_a}에서")
print(f"사용된 숫자의 종류는 {len(count)}개 입니다.")
print(f"참고: {count}")
# collections 모듈의 Counter 불러오기
from collections import Counter
list_a = [1, 2, 3, 4, 1, 2, 3, 1, 4, 1, 2, 3]
Set = set(list_a) # 집합 자료형으로 변경하여 중복 제거
count = dict(Counter(list_a)) # Counter로 개수 세고 딕셔너리로 변환
print(f"{list_a}에서")
print(f"사용된 숫자의 종류는 {len(Set)}개 입니다.")
print(f"참고: {count}")
염기 서열을 입력했을 때 각각의 염기가 몇 개 포함되어 있는지 새는 프로그램을 구현하기
# 입력
ctacaatgtcagtatacccattgcattagccgg
#출력 형식
염기 서열을 입력해주세요: ctacaatgtcagtatacccattgcattagccgg\
a의 개수: 9
t의 개수: 9
g의 개수: 6
c의 개수: 9
rank = input("염기 서열을 입력해주세요: ")
count = {
"a" : 0,
"t" : 0,
"g" : 0,
"c" : 0
}
for i in rank: # 염기 개수 세기
count[i] += 1
for key in count:
print(f"{key}의 개수: {count[key]}")
from collections import Counter
rank = input("염기 서열을 입력해주세요: ")
count = Counter(rank)
for key in count:
print(f"{key}의 개수: {count[key]}")
# 입력
ctacaatgtcagtatacccattgcattagccgg
5글자가 되어 있으면 3글자는 세고 2나머지 2글자는 버리기
# 출력 형식
염기 서열을 입력해 주세요: ctacaatgtcagtatacccattgcattagccgg
{'cta' : 1, 'caa' : 1, 'tgt' : 1, 'cag' : 1, 'tat' : 1, 'acc' : 1, 'cat' : 1, 'tgc' : 1, 'att' : 1, 'agc' : 1, 'cgg' : 1}
rank = "ctacaatgtcagtatacccattgcattagccgg"
for i in range(0, len(rank), 3): # 범위 지정(처음부터, 글자개수, 3개씩)
codon = rank[i:i+3] # coden은 rank의 i번째부터 i+3글자씩 자르기 --> 3글자씩 출력
if len(codon) == 3: # 만약에 codon 개수가 3개면
print(codon) # codon 출력 ---> codon의 개수가 3개가 아닐 경우를 대비
nucleos = input("염기 서열을 입력해주세요: ")
counter = {}
for i in range(0, len(nucleos), 3):
codon = nucleos[i:i+3] # 3글자씩 추가하기
if len(codon) == 3: # 글자가 3글자인지 확인하기
if codon not in counter: # 딕셔너리에 키가 없으면 추가
counter[codon] = 0
counter[codon] += 1 # 개수 추가
print(counter)
리스트 평탄화(list flatten) : 리스트가 중첩되어 있을 때 중첩을 제거하는 처리
# 입력
[1, 2, [3, 4], 5, [6, 7], [8, 9]] --> [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 출력 형식
[1, 2, [3, 4], 5, [6, 7], [8, 9]]를 평탄화하면 [1, 2, 3, 4, 5, 6, 7, 8, 9]입니다
# 😊 Hint
리스트 평탄화를 할 때는 '요소가 일반 요소인지 리스트인지 확인'하는 처리가 필요함. 이는 아래와 같이 type()함수를 사용하면 됨
if type(대상) == list:
print("대상은 리스트입니다!")
a = [1, 2, [3, 4], 5, [6, 7], [8, 9]]
output = [ ]
for i in a: # 리스트 평탄화 하기 위한 코드
if type(i) == list: # 만약에 type이 리스트라면
for j in i: # 반복해서 요소를 추가함
output.append(j)
else: # 아니면 그냥 요소 추가
output.append(i)
print(f"{a}를 평탄화 하면")
print(f"{output}입니다.")
많은 도움이 되었습니다, 감사합니다.