-
[30 Days of ML] Day 5 - part 1Program/[Kaggle] 30 Days of ML 2021. 8. 8. 20:02반응형
Tutorial
Lists
Python의 list는
[ ]
로 묶어서 나타내는 ordered sequences of values임리스트는 아래와 같이 다른 유형의 값들도 함께 포함할 수 있음
my_favourite_things = [32, 'raindrops on roses', help]
Indexing
[i]
를 사용해 리스트의 원소에 접근할 수 있음
Slicing
my_list[i:j]
이런식으로 여러 개의 원소들도 접근할 수 있음
Changing lists
인덱싱을 통해 하나의 값을 변경할 수 있음
print(planets) planets[3] = 'Malacandra' print(planets)
['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'] ['Mercury', 'Venus', 'Earth', 'Malacandra', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
슬라이싱을 통해 여러 개의 값을 변경할 수 있음
planets[:3] = ['Mur', 'Vee', 'Ur'] print(planets) planets[:4] = ['Mercury', 'Venus', 'Earth', 'Mars',] print(planets)
['Mur', 'Vee', 'Ur', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'] ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
List functions
len()
: 길이sorted()
: 정렬sum()
: 합계max()
: 최댓값
Interlude: objects
파이썬의 모든 것(아마 대부분?)을 '객체(object)'라고 부를 수 있음(ex> 리스트, 튜플, ...)
파이썬의 숫자는 허수부(imaginary part)를 나타내는
imag
라는 속성(attributes)를 가짐x=12 # x 는 실수이므로 허수부는 0임 print(x.imag) # 복소수 c = 12 + 3j print(c.imag)
0 3.0
객체는 함수 또한 포함하며 메소드(method)라고 부름
print(x.bit_length) print(x.bit_length())
<built-in method bit_length of int object at 0x562850c983e0>4
List methods
list.append
리스트의 마지막에 원소를 추가함print(planets) planets.append('Pluto') print(planets)
['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'] ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto']
list.pop
은 리스트의 마지막 원소를 제거하여 반환함planets.pop()
'Pluto'
print
를 통해 확인하면 마지막 원소 'Pluto'가 제거된 것을 확인할 수 있음print(planets)
['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
Searching lists
list.index
를 통해 원소의 인덱스를 얻을 수 있음planets.index('Earth')
2
Tuples
튜플은 리스트와 거의 동일하지만 두 가지 다른 점이 있음
[ ]
대신( )
를 사용하여 생성
t = (4, 5, 6) t = 4, 5, 6 print(t)
(4, 5, 6)
- 수정할 수 없음
t[0] = 100
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-19-e6cf7836e708> in <module> ----> 1 t[0] = 100 TypeError: 'tuple' object does not support item assignment
튜플은 여러 반환 값이 있는 함수에 자주 사용됨
예를 들어, float 객체의
as_integer_ratio()
메소드는 튜플 형태로 분자와 분모를 반환함x = 0.125 x.as_integer_ratio()
(1, 8)
swap
대신 다음과 같이 swapping 할 수 있음a, b = 1, 0 print(a, b) a, b = b, a print(a, b)
1 0 0 1
Exercise
5.
내 코드
def fashionably_late(arrivals, name): """Given an ordered list of arrivals to the party and a name, return whether the guest with that name was fashionably late. """ a = int(len(arrivals)/2) if len(arrivals)/2 == len(arrivals)//2 else len(arrivals)//2+1 if name in arrivals[a:-1]: return True else: return False
답 코드
def fashionably_late(arrivals, name): """Given an ordered list of arrivals to the party and a name, return whether the guest with that name was fashionably late. """ idx = arrivals.index(name) # 절반 이상 후에 도착 & 마지막 x return idx>=len(arrivals)/2 and idx != len(arrivals)-1
조건만 잘 생각하면 정답 코드와 같이 한 줄로 해결할 수 있는 문제
반응형'Program > [Kaggle] 30 Days of ML' 카테고리의 다른 글
[30 Days of ML] Day 6 (0) 2021.08.11 [30 Days of ML] Day 5 - part 2 (0) 2021.08.09 [30 Days of ML] Day 4 (0) 2021.08.08 [30 Days of ML] Day 3 (0) 2021.08.05 [30 Days of ML] Day 2 (0) 2021.08.04