https://colab.research.google.com/drive/1upv4rqZr5ExdKRbPFlw-P9Lrg7nYVoQf#scrollTo=G8r5LsRgjxCe
#실습문제 1
- 단어 aaa, bbb, ccc, ddd, eee 로 이루어진 문자열 M 이 있다. 각 단어의 개수를 구하고, 개수가 많은 단어순(내림차순)으로 단어와 단어의 개수를 출력하라. 주어진 문자열 M을 이용해 풀고, 코드와 코드에 대한 출력값을 모두 제출.
M = input("M =")
num_a=M.count('aaa')
num_b=M.count('bbb')
num_c=M.count('ccc')
num_d=M.count('ddd')
num_e=M.count('eee')
arr=[('aaa',num_a),('bbb',num_b),('ccc',num_c),('ddd',num_d),('eee',num_e)]
arr.sort( key=lambda x: x[1], reverse=True) # 인자에서 x[1] 즉 value 값을 기준으로, 내림차 순
for x in arr:
if(x[1]!=0):
print(x[0],x[1])
#이론문제 1
- 딕셔너리의 키에 리스트를 넣을 수 있다(x) (1점)
=> https://wikidocs.net/16 한 가지 주의해야 할 사항은 Key에 리스트는 쓸 수 없다는 것이다. 하지만 튜플은 Key로 쓸 수 있다.
a = {[1,2] : 'hi'}
#output
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: unhashable type: 'list'
=> ❌ : 변수 n에 값을 복사한다. ⭕ : int형 객체 2에 변수 n이 참조한다.
- 파이썬에서 x=7 이라할때, 정수 리터럴 7의 식별번호와 x의 식별번호는 같다(x)
https://velog.io/@binsu/Python-타-언어와-다른-파이썬의-변수
⇒ 변수는 객체를 참조하는 객체에 연결된 이름에 불과하다.
모든 객체는 메모리를 차지하고, 자료형뿐만 아니라 식별 번호(identity)를 가진다.
리터럴(literal) : 값 자체, 문자 자체에 의해 값이 주어지는 문자열
ex) 숫자 리터럴 7은 7의 값을 가지고 문자 리터럴 CHAR는 CHAR의 값을 가짐.
- 딕셔너리도 리스트처럼 순서를 정해서 출력할 수 있다(o) (2점)
d1 = sorted(d.items)
#or
d1 = sorted(d)
- 튜플은 리스트와 같이 순서가 있어서 인덱스로 접근이 가능하고, 최대값도 찾을 수 있습니다. 리스트와 큰 차이가 있는데, 그것은 변경불가능(immutable), 즉 값을 변경할 수 없다는 특성입니다. 하지만 순서는 바꿀 수 있습니다.(x) (2점)
=>https://wikidocs.net/15
튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.
리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다. 리스트는 요소 값의 생성, 삭제, 수정이 가능하지만 튜플은 요소 값을 바꿀 수 없다. 튜플은 요솟값을 변경할수 없기 때문에 sort, insert, remove, pop과 같은 내장 함수가 없다.
- 파이썬에서 모든 객체는 메모리를 차지하고, 식별번호를 가진다. (o) (1점)
- for i in 'banana': print(i)를 하면 'banana'가 split되어 출력된다. (o) (1점)
- strip()으로 공백을 제거할 때, 개행문자('\n')는 공백으로 취급되어 제거된다. (o) (2점)
=> strip() 함수는 작동중인 문자열에서 후행 및 선행 개행을 모두 제거하는 데 사용됩니다.
- 딕셔너리에 items()를 실행하면 키와 값이 쌍을 이루는 '튜플(tuple)'이 저장된 ‘리스트’가 반환된다. (o) (2점) // 세모
=>https://wikidocs.net/96322
- test = ("가" "나" "다") test 변수는 튜플로 선언된다.(x) (2점)
- t[:]은 아무것도 출력이 안된다. (x) (1점)