1번

함수의 입력값중 ('cloudy')는 괄호 안에 있어도 tuple이 아닌 string 취급이다. 원소가 하나인 tuple을 만들고 싶었다면 그 다음 입력값처럼 쉼표를 넣어줘야 한다. ('cold',)
그래서, first = 'c' + 'cold' 가 되고, 출력값은 ('sunny', 'ccold') 가 된다.
2번

for thing in L은 리스트 안에 있는 각 원소들을 대상으로 Loop를 실행하게 된다.
이때 42가 세 번째 원소로 있기 때문에 elif~ 조건을 만족하고, 리스트의 두 번째 원소는 "everything"으로 바뀐다.
리스트의 네 번째 원소는 0으로 if~ 조건을 만족하고, 이에 따라 L[thing], 즉 L[0]이 'universe'로 바뀐다.
결과적으로 ['universe', 'everything', '42', '0'] 이 된다.
3번

L4는 ['re', 'mi']이다. 여기서 L3.extend(L4)를 실행하면 L3 = ['do','re','mi']가 된다.
L3.sort()를 실행하면 abc 순서대로, L3 = ['do','mi','re']가 되고, del(L3[0])에서 L3 = ['mi','re']가 된다.
마지막으로 L3.append()는 괄호 안에 있는 원소를 추가하라는 메소드이므로, ['fa','la']라는 리스트가 하나의 원소로 추가되어 정답은 1번이 된다.
만약 마지막 메소드가 L3.extend() 였다면 2번이 답이 되었을 것이다.
4번

L1.append ('juice')가 L1을 ['bacon', 'eggs', 'juice']로 만든다.
한편, 리스트는 Mutable하다. 따라서 brunch = L1은 brunch라는 새로운 리스트를 만든 것이 아니라, brunch가 L1이 참조하고 있는 리스트를 참조하게 한 것이 된다.
이에 따라 brunch.extend(L2)를 하면 L1.extend(L2)와 같은 일이 일어나고, 결국 brunch의 값은 2번이 된다.
'MIT challenge > 6.0001 - 파이썬을 통한 컴퓨터과학 입문' 카테고리의 다른 글
6강 - Recursion and Dictionaries (4) | 2023.01.21 |
---|---|
5강 - Tuples, Lists, Aliasing, Mutability, and Cloning (1) | 2023.01.16 |
4강 In-class Questions (0) | 2023.01.13 |
4강 - Decomposition, Abstraction, and Functions (0) | 2023.01.13 |
3강 In-class Questions (0) | 2022.11.26 |