내배캠_Data_3기/TIL

240711_PYTHON, 파이썬, 리스트, 인덱싱, 슬라이싱, 문자열

케일라(Data_3기) 2024. 7. 12. 14:18

리스트

  • 순서대로 여러 값이 담겨있음.
  • 대괄호 [ ] 를 사용하여 리스트를 만들 수 있다.
  • 각 값은 쉼표로 구분되며, 대괄호  안에 들어간다.

리스트의 인덱싱(Indexing)

리스트에서 특정 값에 접근하거나 일부분을 추출하는 방법

  • 인덱싱 : 리스트에서 특정 위치의 값에 접근하는 방법
# 리스트 생성
numbers = [1, 2, 3, 4, 5]

# 첫 번째 요소에 접근하기
first_number = numbers[0]
print("First number:", first_number)

# 두 번째 요소에 접근하기
second_number = numbers[1]
print("Second number:", second_number)

# 마지막 요소에 접근하기
last_number = numbers[-1]
print("Last number:", last_number)

# 음수 인덱스를 사용하여 역순으로 요소에 접근하기
second_last_number = numbers[-2]
print("Second last number:", second_last_number)

 

  • 리스트 값 삭제
# 리스트의 항목 삭제
del my_list[0]
print("첫 번째 항목 삭제 후 리스트:", my_list) 

# 리스트 내 값들의 모든 항목 제거
my_list.clear()
print("모든 항목 제거 후 리스트:", my_list)

 

슬라이싱

리스트 슬라이싱은 리스트의 일부분을 추출하는 것

  • 리스트에서 특정범위의 항목을 선택하거나 리스트를 자르는 등의 작업을 할 수 있다.
# 리스트 슬라이싱의 구분
new_list = old_list[start:end:step]
  • 파이썬은 맨 처음을 가리키는 인덱스가 0이다.
  • 슬라이싱을 할 때 끝에 입력할 인덱스는 내가 선택할 인덱스보다 +1을 해준다.
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 1. 일부분만 추출하기
print(my_list[2:5])   # 출력: [3, 4, 5]

# 2. 시작 인덱스 생략하기 (처음부터 추출)
print(my_list[:5])    # 출력: [1, 2, 3, 4, 5]

# 3. 끝 인덱스 생략하기 (끝까지 추출)
print(my_list[5:])    # 출력: [6, 7, 8, 9, 10]

# 4. 음수 인덱스 사용하기 (뒤에서부터 추출)
print(my_list[-3:])   # 출력: [8, 9, 10]

# 5. 간격 설정하기 (특정 간격으로 추출)
print(my_list[1:9:2]) # 출력: [2, 4, 6, 8]

# 6. 리스트 전체를 복사하기
copy_of_list = my_list[:]
print(copy_of_list)   # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 7. 리스트를 거꾸로 뒤집기
reversed_list = my_list[::-1]
print(reversed_list)  # 출력: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

리스트의 다양한 메소드 : 특정자료형 뒤에 점.을 붙이고 쓰는 내장함수들을 '메소드(method)'라고 한다.

  • append(): 리스트에 항목을 추가합니다.
  • extend(): 리스트에 다른 리스트의 모든 항목을 추가합니다.
  • insert(): 리스트의 특정 위치에 항목을 삽입합니다.
  • remove(): 리스트에서 특정 값을 삭제합니다.
  • pop(): 리스트에서 특정 위치의 값을 제거하고 반환합니다.
  • index(): 리스트에서 특정 값의 인덱스를 찾습니다.
  • count(): 리스트에서 특정 값의 개수를 세어줍니다.
  • sort(): 리스트의 항목들을 정렬합니다.
  • reverse(): 리스트의 항목들을 역순으로 뒤집습니다.
# 리스트 생성
my_list = [1, 2, 3, 4, 5]

#리스트의 다양한 메서드(Methods)
my_list.append(6) # 리스트에 새로운 항목 추가
print(my_list)  # 출력: [1, 2, 3, 4, 5, 6]

my_list.extend([7, 8, 9]) # 다른 리스트의 모든 항목을 추가
print(my_list)  # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]

my_list.insert(2, 10) # 두 번째 위치에 값 삽입
print(my_list)  # 출력: [1, 2, 10, 3, 4, 5, 6, 7, 8, 9]

# 이건 실행하는 코드가 아닙니다
## a_list.insert(index, element)

my_list.remove(3) # 값 3 삭제
print(my_list)  # 출력: [1, 2, 10, 4, 5, 6, 7, 8, 9]

popped_value = my_list.pop(5) # 다섯 번째 위치의 값 제거하고 반환
print(popped_value)  # 출력: 6
print(my_list)  # 출력: [1, 2, 10, 4, 5, 7, 8, 9]

print(my_list.index(4)) # 출력: 3 (값 4의 인덱스)

print(my_list.count(7)) # 출력: 1 (값 7의 개수)

my_list.sort() # 리스트 정렬
print(my_list)  # 출력: [1, 2, 4, 5, 7, 8, 9, 10]

my_list.reverse() # 리스트 역순으로 뒤집기
print(my_list)  # 출력: [10, 9, 8, 7, 5, 4, 2, 1]

 

 

문자열

글의 형태인 데이터, 문자들의 모임

작은 따옴표' ' , 큰 따옴표 " " 둘다 같다

따옴표로 감싸지 않으면 변수이름을 뜻함

a = 1
b = "a"
c = a
print(a, b, c) # 1 "a" 1

 

문자열 인덱싱 : 문자열의 일부를 따로 떼어 부르는 방법

한 글자 씩 부를 때는 몇 번째인지 '인덱스'를 넣어 부른다.

문자열의 일부를 잘라낼 때는 슬라이싱

특정 문자열로 자르고 싶을때 : split(문자열)

 

문자열의 메소드

  • 모든 알파벳 대문자 또는 소문자로 바꾸기
sentence = 'Python is FUN!'

sentence.upper()  # PYTHON IS FUN!
sentence.lower()  # python is fun!
  • 특정 문자를 기준으로 문자열 나누기
# 이메일 주소에서 도메인 'gmail'만 추출하기
myemail = 'test@gmail.com'

result = myemail.split('@') # ['test','gmail.com'] (뒤에 배울 '리스트'라는 자료형이에요 :))

result[0] # test (리스트의 첫번째 요소)
result[1] # gmail.com (리스트의 두 번째 요소

result2 = result[1].split('.') # ['gmail','com']

result2[0] # gmail -> 우리가 알고 싶었던 것
result2[1] # com

# 한 줄로 한 번에!
myemail.split('@')[1].split('.')[0]
  • 특정 문자를 다른 문자로 바꾸기
txt = '서울시-마포구-망원동'
print(txt.replace('-', '>')) # '서울시>마포구>망원동'