파이썬 코칭스터디 1기 - 모두를 위한 파이썬(PY4E) 8강 (리스트)

태온·2021년 8월 14일
0
post-thumbnail

8. 리스트

😲 컬렉션이란?

하나의 변수에 새로운 값을 할당하게 되면 기존의 값은 사라지고 그 자리에 새로운 값이 대체된다.

즉, 하나의 변수에는 하나의 값만이 할당이 가능하다.

하지만, 하나의 변수에 여러 값을 넣는 것이 가능하도록 하는 것이 컬렉션이다.

문자열처럼, 리스트(list)는 값의 순서(sequence)이다.
문자열에서 값은 문자지만 리스트에서는 임의 자료형(type)도 될 수 있다. 리스트 값은 요소(elements)나 때때로 항목(items)으로 불린다. 리스트를 생성하는 방법은 여러 가지가 있다.
가장 간단한 방법은 대괄호[ ]로 요소를 감싼다.


리스트 (List)

리스트는 컬렉션의 한 종류이다.

1. 리스트의 각 항목들은 [ ]로 둘러싼다.

2. 리스트 내의 항목들에 대한 구분은 , (콤마)로 구분한다.

friends = ['Joseph', 'Glenn', 'Sally'] 
carryon = ['socks', 'shirt', 'perfume']

3. 리스트 내에 또 다른 리스트를 내포할 수 있다.

colors = ['red', ['yellow','blue'], 'black']

4. 비어 있는 리스트를 만들 수 있다.

emptyList = []

5. 리스트의 항목들에 인덱스 값으로 접근할 수 있다.

colors = ['red', ['yellow','blue'], 'black']
print(colors[0]) # red 출력

6. 리스트의 항목들은 바뀔 수 있다.

lotto = [2, 14, 26, 41, 63]
print(lotto)
# [2, 14, 26, 41, 63]이 출력됨

lotto[2] = 28
print(lotto)
# [2, 14, 28, 41, 63]이 출력됨

✔️ len()

  • 리스트에서도 len()함수를 통해 해당 리스트가 몇개의 항목을 가지고 있는지를 알 수 있다.
friends = ['Joseph', ' Glenn', 'Sally']
print(len(friends))
# 3 출력

✔️ 리스트 병합

  • 리스트 타입도 + 연산자를 활용해서 서로 다른 리스트를 더할 수 있다.
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c)
# [1, 2, 3, 4, 5, 6]로 출력

✔️ 리스트 슬라이싱

  • 리스트도 :(콜론)을 이용해 자를 수 있다.
  • 여기서 중요한 것은 t[1:3]과 같은 경우 3번째 인덱스에 해당하는 항목은 포함되지 않는다.
t = [9, 41, 12, 3, 74, 15]
print(t[1:3])
print(t[:4])
print(t[3:])
print(t[:])

# 결과
# [41, 12]
# [9, 41, 12, 3]
# [3, 74, 15]
# [9, 41, 12, 3, 74, 15] 

✔️ dir() 메소드

  • 특정 타입에서 사용할 수 있는 메소드의 목록들을 볼 수 있는 함수
x = list()
print(dir(x))
# append, clear, copy, count 등 리스트에 사용할 수 있는 메소드들을 볼 수 있다.

✔️ 리스트 만들기

  • 빈 리스트 만들기(list) → 항목 추가하기(append)→ 항목 정렬하기(sort)
  • in을 활용해 'Glenn'이 친구 목록에 있는지 확인이 가능하다.
friends = list()
friends.append('Joseph')
friends.append('Glenn')
friends.append('Sally')
print(friends) # ['Joseph', 'Glenn', 'Sally']
friends.sort()
print(friends) # ['Glenn', 'Joseph', 'Sally']
print('Glenn' in friends) # True 출력

✔️ 문자열과 리스트

문자열과 리스트는 잘 어울려 사용된다.

abc = 'With three words'
stuff = abc.split()
print(stuff) # ['With', 'three', 'words'] 로 출력

✔️ 구분자

  • 명시적으로 구분자를 넣어주지 않으면, 빈칸을 구분자로 인지하고 나누어 준다.
words2 = 'first;second;third'
stuff2 = words2.split() # 공백을 기준으로 분할해라!
print(stuff2) # ['first;second;third'] 출력
stuff2 = words2.split(';') # ; 를 기준으로 분할해라!
print(stuff2) # ['first', 'second', 'third'] 출력

✔️ 이메일 주소 추출하기

  • 지금까지 배운 메소드와 자료구조를 활용하면 우리가 원하는 값만을 추출할 수가 있다.
line = 'From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008'
words = line.split() # 해당 라인을 공백을 구분으로 하여 리스트로 저장
print(words[1]) # stephen.marquard@uct.ac.za이 출력
email = words[1] # 추출한 words[1]를 email변수에 저장
address = email.split('@') # @를 구분자로 저장
print(address) # ['stephen.marquard', 'uct.ac.za'] 출력
print(address[0]) # stephen.marquard 출력
print(address[1]) # uct.ac.za 출력


📗 참고

모두를 위한 파이썬 (PY4E)

profile
코딩도시락(배워서 남 주자)

0개의 댓글