혼공파_3주차_리스트

예진·2025년 1월 27일
0

python

목록 보기
5/9
post-thumbnail

개념정리

<챕터 4-1> 리스트

; 여러가지 자료를 저장할 수 있는 자료로, 대괄호[ ] 내부에 여러 종류의 자료(요소, element) 를 넣어 선언
요소가 존재하지 않는 위치에서 요소를 꺼낼 때 IndexError 발생

  • 다양한 자료형으로 구성될 수 있음
  • 특정 요소 단독 출력 및 변경 가능

바보1) 1:3은 되면서 왜 2:3은 안되지? -> 마지막 요소는 불포함

  • 대괄호 안에 음수를 넣어 뒤에서부터 요소 선택 가능
  • 리스트 접근 연산자 이중 사용
  • 리스트 안에 리스트 사용 가능

리스트 연결 연산자

  • 연산자 + * 사용 가능
  • len() 함수로 길이 구하기 가능
  • 리스트 원본에 영향을 미치지 않는 비파괴적 처리
    ※ <list01.py> 아 손코딩 귀찮앙 ㅠㅠ

리스트 요소 추가하기

  • 리스트 뒤에 요소 추가하기 append()
  • 리스트 중간에 요소 추가하기 insert()
  • 한 번에 여러 요소 추가하기 extend()
  • 리스트에 직접적인 영향을 미치는 파괴적 처리

리스트에 요소 제거하기


0:1 왜 안 먹히냐 맨 첫번째 요소라서 선택 안되는 건가

  • del() 함수 리스트 요소 지정 제거 및 대량 제거 가능
  • pop() 함수 리스트 요소 지정 제거

리스트 슬라이싱

; 리스트에 [:] 연산자로 리스트 범위를 지정하여 여러 요소를 선택

값으로 제거하기

; remove() 함수 사용

모두 제거하기

; 리스트 내부 요소 모두 제거 clear()함수 사용


리스트 정렬하기

; sort()

문자가 포함된 리스트에서 적용 불가능

								--------- >>> 여기까지 파괴적 동작

리스트 내부에 있는지 확인하기

; in / not in


for 반복문

; for 반복자 in 반복할 수 있는 것: 코드 ~

중첩 리스트

; list_of_list

2차원 리스트에 반복문 두번 사용하기

전개연산자 *

; 기호 * 사용


중첩 리스트 생성 시 발생하는 객체 참조 문제

list_of_list = [[0]*5]*5
for itmes in list_of_list:
    print(itmes)

실제 출력결과

[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]

하지만 나는 이 때 출력결과를

[1, 1, 1, 1, 1]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]

이렇게 바꾸고 싶어



List Comprehension?

파이썬의 리스트 컴프리헨션(List Comprehension)은 기존 리스트를 기반으로 새로운 리스트를 간결하고 효율적으로 생성하는 문법입니다. 기존의 for 루프보다 코드를 최대 70% 단축시키면서도 가독성을 유지하는 특징이 있습니다.

핵심 구조와 작동 원리
[표현식 for 요소 in 반복가능객체 if 조건식]

  • 표현식: 각 요소에 적용할 연산/변환
  • 요소: 반복 처리할 대상
  • 조건식: 요소 필터링 조건(옵션)

기본 예시 비교

  • 전통적 방식:
squares = []
for num in range(1,6): 		# 1~6까지 출력할건디 물론 마지막 요소인 6은 미포함
	squares.append(num ** 2) # 제곱해서 출력해라

출력결과: [1, 4, 9, 16, 25]

  • 리스트 컴프리헨션:
squares = [num ** 2 for num in range(1, 6)]

출력결과: [1, 4, 9, 16, 25]

하 어렵다이ㅠ


리스트랑 배열이랑 뭐가 다르지

파이썬의 리스트랑 자바 배열이랑 뭐가 다르게
자바 배열 선언할 때 자료형 한 가지로만 선언해야 하는데, 파이썬의 리스트 선언할 때는 자료형 상관없이 [23,chill,10.1] 해도 선언이 쌉가능

아 이때 2주차에서 애먹었던 자료형의 유연성이 돋보이는듯


참고

https://june-coder.tistory.com/3
https://stackoverflow.com/questions/12791501/why-does-this-code-for-initializing-a-list-of-lists-apparently-link-the-lists-to

profile
해시태그 정리하기.. 시리즈 썸네일 넣기....클라우드 메모 벨로그에 정리하기...

0개의 댓글

관련 채용 정보