deda
Deda의 데이터 디자인
deda
전체 방문자
오늘
어제
  • 분류 전체보기 (121)
    • Python (27)
      • Python 기초 (17)
      • Python 데이터분석 (10)
    • SQL (9)
    • Coding test (54)
      • Python 기초문제 (45)
      • LeetCode (9)
    • BigData (2)
    • ZeroBase (3)
    • UX (0)
    • Business Review (1)
    • 통계 & 수학 (17)
      • 통계학 (14)
      • 수학 (3)
    • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 최소공배수
  • SQL
  • matplotlib
  • 등비수열
  • 통계
  • 소인수분해
  • 코딩
  • 프로그래밍
  • 릿코드
  • 데이터사이언티스트
  • 등차수열
  • 마이데이터
  • pandas
  • 기초수학
  • 함수
  • BMI
  • 부트캠프
  • 네카라쿠배
  • 파이썬
  • 빅데이터
  • 데이터분석가
  • 군수열
  • 데이터분석
  • 계산기
  • 계차수열
  • 제로베이스
  • 팩토리얼
  • 미니콘다
  • 모듈
  • 데이터엔지니어

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
deda

Deda의 데이터 디자인

[파이썬 기초] 리스트(list)
Python/Python 기초

[파이썬 기초] 리스트(list)

2022. 5. 2. 10:06

🔍  자료구조

- 컨테이너 자료형*의 데이터 구조                   

- 대표적으로 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 세트(Set)가 있음

- iterable 객체 : 하나 이상의 항목이 포함되어 있는 자료구조에서 데이터를 차례대로 꺼낼 수 있는 객체

List (데이터를 바꿀 수 있음)
student = ['홍길동', '박찬호', '이용규', '박승철']


Tuple(한번 데이터가 정해지면 바꿀 수 없음) 
jobs = ('의사', '속기사', '전기기사', '감정평가사', '회계사')


Dic(key값에 해당하는 Value가 존대
scores = {'kor':88, 'eng':91, 'mat':95, 'sci':90, 'his':100}


Set(중복 데이터가 존재하지 않음.)
allSale = {100, 150, 90, 100}     →     {100, 150, 90}

cf. 컨테이너 자료형 : 여러 개의 데이터가 묶여있는 자료형


 

1. 리스트(List)

- 배열과 같이 여러 개의 데이터를 나열한 자료구조

- [] 를 이용해서 선언, 데이터 구분은 ' , '를 이용

- 모든 기본 형태의 데이터를 같이 저장할 수 있다.

strs = [3.14, '십', 20]

 

- 리스트에 또 다른 자료구조를 저장할 수 있다.

datas = [10, 20, 30, [40, 50, 60]]

 

1) 인덱스

- 아이템에 자동으로 부여되는 번호표. 0부터 시작

- 각각의 데이터는 인덱스를 이용하여 조회 가능

students = ['홍길동', '박찬호', '이용규', '박승철']
               0       1       2        3          → 인덱스(index)

 print('student[1] = {}.format(student[1]))
 
 ------------------
 student[1] : 박찬호

 

2) 리스트의 길이

- 리스트에 저장된 아이템 개수(len)

sLength = len(students)   →    4

tip) students는 레퍼런스 변수(주소값으 저장하고 호출 시 저장된 주소를 찾아감)

tip) for 반복문의 범위 지정할 때 용이하다.         예시) for i in range(len(students)):

 

- for 문을 이용하면 리스트의 아이템을 자동을 참조할 수 있다.

studentCnt = [[1, 19], [2, 20], [3,22], [4, 18], [5, 21]]

for classNo, cnt in studentCnts:      → studentCnts : iterable 객체
	print('{}학급 학생 수: {}.format(classNo, cnt))   →  1학급 학생 수: 19
 

[리스트] 학생 수가 가장 많은 학급과, 적은 학급 구하기

🔍  문제 7개의 반의 학생 수를 입력 받아, 학생 수가 가장 많은 학급과 적은 학급을 구하기. 🗝 사용함수 🖥 실행 cl1 = int(input('1반 학생 수 입력: ')) cl2 = int(input('2반 학생 수 입력: ')).

designingdata.tistory.com


 

2. enumerate() 함수

- 아이템 열거할 때 사용, 인덱스와 데이터를 한번에 사용 가능

- 문자열에도 사용 가능

sports = ['농구, '수구', '축구', '마라톤', '테니스']

for i in range(len(sports)):                       

for idx, value in enumerate(sports):

 

3. list 아이템 추가

1) append() 함수

- 마지막 인덱스에 아이템 추가

students = ['홍길동', '박찬호', '이용규', '박승철']

students.append(['김정주'])

students = ['홍길동', '박찬호', '이용규', '박승철', '김정주']

        

2) insert() 함수

- 특정 위치(인덱스)에 아이템 추가, 인수가 2개 필요

students = ['홍길동', '박찬호', '이용규', '박승철']

students.insert(2, '김정주')

students = ['홍길동', '박찬호', '김정주, '이용규', '박승철']
 

[리스트] 숫자 입력 프로그램(오름차순)

🔍  문제  사용자로 부터 숫자를 입력받고, 입력한 숫자를 아래 리스트에 오름차순으로 넣기 [1, 3, 6, 11, 45, 54, 62, 74, 85] 🗝 사용함수 enumerate() : 인덱스와 데이터를 한번에 사용 가능 .insert : 특

designingdata.tistory.com


 

4. list 아이템 제거

1) pop() 함수

- 마지막 인덱스에 해당하는 아이템 제거

- pop(n) : n 인덱스에 해당하는 아이템 제거

 

2) remove() 함수

- 특정 아이템 삭제 가능

- 한 개의 아이템만 삭제 가능. 2개 이상 삭제하려면  while 문 이용

students = ['홍길동', '박찬호', '이용규', '박승철']

students.remove(['박찬호'])

students = ['홍길동', '이용규', '박승철']
students = ['홍길동', '박찬호', '이용규', '박승철', '박찬호', '박찬호']

while '박찬호' in students:
	students.remove(['박찬호'])

 

5. list 와 list 연결

1) extend()

- 리스트와 리스트르 연결. 본인의 리스트에 아이템 추가

student1 = ['홍길동', '박찬호', '이용규', '박승철']

student2 = ['김정주', '이건희', '정의선']

student1.extend(group2)

 

2) +

- 새로운 리스트를 만듦. A + B = C(새로운 리스트)

student1 = ['홍길동', '박찬호', '이용규', '박승철']

student2 = ['김정주', '이건희', '정의선']

student3 = student1 + student2
 

[리스트] 중복된 숫자 제거

🔍  문제 두 개의 리스트를 합치고 중복된 숫자를 제거 myFavoriteNum = [1,3,5,7,9] friendNum = [2,3,5,8,10] 🗝 사용함수 append() : 마지막 인덱스에 아이템 추가 🖥 실행 1 2 3 4 5 6 7 8 9 10 11 12 13 14..

designingdata.tistory.com


 

6. list 정렬

1) sort()

- 오름차순으로 정렬

- 내림차순의 경우, sort(reverse=True)

num = [8, 11, 6, 5, 1]        

num.sort()         →    [1, 5, 6, 8, 11]

num.sort(reverse=True)       →    [11, 8, 6, 5, 1]
 

[리스트] 최고, 최저점을 삭제 후 총점, 평균 구하기

🔍  문제 아래 점수표에서 최고 및 최저점 삭제 후 총점, 평균 구하기 playerScore = [9.5, 8.9, 9.2, 9.8, 8.8, 9.0] 🗝 사용함수 pop() : 마지막 인덱스에 해당하는 아이템 제거 len() : 리스트의 길이 출력

designingdata.tistory.com

 

2) reverse()

- 아이템의 순서를 뒤집음

- 정렬과는 관계가 없음

num = [8, 11, 6, 5, 1]        

num.reverse()     →    [1, 5, 6, 11 , 8]
 

[리스트] 암호 해독기

🔍  문제 주어진 암호를 아래와 같이 변환하기 secret = '27156231' [1, 3, 3, 2, 6, 12, 5, 1, 5, 7, 2, 14] 🗝 사용함수 insert() : 특정 위치(인덱스)에 아이템 추가, 인수가 2개 필요 append() : 마지막 인..

designingdata.tistory.com

 

3) 알고리즘을 통한 정렬

 

[파이썬 기초] 정렬 알고리즘

🔍 정렬 알고리즘 - 파이썬에는 내장 정렬 메소드 sort 가 있지만, 코딩을 하다보면 내장 메소드로만은 해결 불가능한 경우가 있다. - 정렬 알고리즘은 시간 복잡도에 따라 성능을 좌우되며 성능

designingdata.tistory.com


 

7. list 슬라이싱

1) [n:m]

- 원하는 아이템만 뽑아낸다.

student1 = ['홍길동', '박찬호', '이용규', '박승철', '김학규', '안성훈']

student1[2:4]     →    2 <= n  < 4    →    ['이용규', '박승철']          

student1[:4]      →        n  < 4     →    ['홍길동', '박찬호', '이용규', '박승철']          

student1[2:]      →       2 <= n      →    ['이용규', '박승철', '김학규', '안성훈']          

student1[2:-2]    →    2 < n <= 2     →    ['이용규', '박승철']

 

- 문자열도 슬라이싱이 가능하다.

str= 'apple'

str[2:4]   →    2 <= n  < 4    →   [pl]

 

- 단계 설정도 가능하다.

student1 = ['홍길동', '박찬호', '이용규', '박승철', '김학규', '안성훈', '김태균']

student1[1:6:2]    →    ['박찬호', '박승철', '안성훈']

 

- 아이템 변경도 가능하다.

student1 = ['홍길동', '박찬호', '이용규', '박승철', '김학규', '안성훈', '김태균']

student1[1:6:2] = [park1, park2, ahn]    

student1 = ['홍길동', 'park1', '이용규', 'park2, '김학규', 'ahn', '김태균']

 

2) slice()

- slice() 함수를 이용해서 슬라이싱할 수도 있다.

student1 = ['홍길동', '박찬호', '이용규', '박승철', '김학규', '안성훈']

student[slice(2,4)]    →     ['이용규', '박승철']

 

8. list 나머지 기능들

1) list 곱셈

- 리스트를 곱셈하면 아이템이 반복된다.

student1 = ['홍길동', '박찬호', '이용규']

std2 = student1 * 2    →   ['홍길동', '박찬호', '이용규', '홍길동', '박찬호', '이용규']

 

2) index(item) 함수

- item의 index를 알 수 있다.

student1 = ['홍길동', '박찬호', '이용규']

student1.index('박찬호')       →       1
student1 = ['홍길동', '박찬호', '이용규', '박찬호', '김태균', '손아섭']

student1.index('박찬호', 2, 4)  →   2 <= n  < 4 의 박찬호 찾기   →    3

 

3) count() 함수

- 특정 item의 개수 확인

student1 = ['홍길동', '박찬호', '이용규', '박찬호', '김태균', '손아섭']

student1.count('박찬호')     →     2

 

4) del 키워드

- 특정 아이템 삭제

student = ['홍길동', '박찬호', '이용규', '박찬호', '김태균', '손아섭']

del student[1]      →   '박찬호' 삭제

del student[1:4]    →   '박찬호', '이용규', '박찬호', '김태균' 삭제

'Python > Python 기초' 카테고리의 다른 글

[파이썬 기초] 딕셔너리(Dictionary)  (0) 2022.05.04
[파이썬 기초] 튜플(Tuple)  (0) 2022.05.03
[파이썬 기초] return과 print의 차이  (0) 2022.04.30
[파이썬 기초] 추상클래스, 예외  (0) 2022.04.28
[파이썬 기초] 오버라이딩  (0) 2022.04.28
    'Python/Python 기초' 카테고리의 다른 글
    • [파이썬 기초] 딕셔너리(Dictionary)
    • [파이썬 기초] 튜플(Tuple)
    • [파이썬 기초] return과 print의 차이
    • [파이썬 기초] 추상클래스, 예외
    deda
    deda
    데이터 분석 / 파이썬 / UX / 정량리서치

    티스토리툴바