-
[python]리스트 개념과 생성/항목 참조/항목 수정/중첩 리스트Languages/python 2021. 4. 1. 17:06반응형
관련된 나열 항목을 관리하는 리스트
항목의 나열인 시퀀스
리스트는 콤마로 구분된 항목(또는 원소)들의 리스트로 표현
항목은 정수,실수,문자열,리스트 등이 모두 가능
항목 순서는 의미가 있으며,항목 자료 값은 중복돼도 무관
리스트는 대괄호 []사이에 항목을 기술
ex)
menu = ['배고파', '디지겠다', '귀차낭']
빈 리스트의 생성과 항목 추가
[]
빈 대괄호로 빈 리스트 생성
list()
인자가 없는 내장 함수 list()로도 빈 리스트를 생성
append()
리스트 메소드 append(삽입할 항목)
리스트의 가장 뒤에 항목을 추가
ex)
p1 = list()
p1.append('c++')
p1.append('java')
print(p1)
['c++','java']
예제
리스트로 편의점 구입할품목 만들기
good = [] for 1 in range(3); item = input('구입할 품목은 ? ') good.append(item) print(goods) print('길이 : %d' % len(goods))
input >>과자
['과자']
input >>우유
['과자','우유']
input >>세면도구
['과자','우유','세면도구']
리스트 항목 참조
문자열 'python'으로 만들어진 리스트 py
길이가 6이므로 [0~5] 그리고 [-6~-1]까지 첨자를 사용
예제
프로그래밍 언어 리스트에서 첨자로 항목 참조
일상 코딩
가위바위버 게임을 위한 준비
random모듈의 메소드 choice(list)
리스트 중의 항목 하나를 무작위로 반환
리스트 메소드 count()와 index()
리스트 메소드 count(값)
값을 갖는 항목의 수
index(값)
인자인 값의 항목이 위치한 첨자를 반환
동일한 값이 여러 개이면 첫 번째로 나타난 위치의 첨자 반환
리스트의 항목으로 리스트 구성
리스트 내부에 다시 리스트가 항목으로 사용 가능
ex)
num = [ ['1','2','3'] '4','5' ]
리스트의 부분 참조인 슬라이싱
리스트[start:stop:step]
첨자 start 에서 첨자 stop-1까지 step 간격으로 부분 리스트 반환
0에서 시작하는 오름차순
마지막 요소 -1에서 시작하는 내림차순의 첨자도 가능 하며
다소 복잡하지만 두 순차의 첨자를 함께 사용
alp = list('abcdefghij') print(alp[1:-1]) print(alp[-1:1:-1]) print(alp[-2:2:-2])
리스트의 일부부을 다른 리스트로 수정하려면 슬라이스 방식에 대입
ex)
alp = [0:3] = ['k']
리스트 메소드 insert(첨자,항목)으로 삽입
리스트의 첨자 위치에 항목을 삽입
리스트.insert(첨자,항목)
삽입되는 항목은 무엇이든 가능
빈 리스트에서 삽입가능
kpop = [] kpop.insert(0.'블랙핑크') kpop.insert(0.'bts') kpop.insert(0.'장범준')
리스트 항목 삭제
메소드 remove(항목)
kpop.remove('장범준')
pop(첨자)
pop
kpop = ['bts','장범준','블랙핑크','잔나비'] print(kpop.pop(1)) >>장범준 print(kpop.pop()) 잔나비 >>['bts','블랙핑크']
문장 del
항목 삭제와 부분 삭제
kpop = >>['bts','장범준','블랙핑크','잔나비'] del kpop[0] print[kpop] >>['bts',,'블랙핑크','잔나비']
리스트 자체를 메모리에서 완전 삭제 가능
kpop = ['bts','잔나비','블랙핑크','잔나비'] del kpop print(kpop) xxxxx
리스트.extend(list)
리스트 인자인 list를 가장 뒤에 추가
확장한다는 의미
day = ['월','화','수'] day2 = ['목','금','토',일] day.extend(day2) print(day) ['월','화','수','목','금','토',일]
연산자
리스트를 연결
항목이 지정된 정수 만큼 반복된 리스트를 반환
day1 = ['월','화','수'] day2 = ['목','금','토',일] day = day1 + day2 print(day) ['월','화','수','목','금','토',일]
메소드 reverse()
리스트 항목 순서를 뒤집음
ex)
월화수목 >>>
목수화월
메소드 sort()
리스트 항목 순서를 정렬
ex)가나다순
내장함수 sorted()
리스트 항목의 순서를 정렬한 리스트를 반환하는 내장함수 sorted()
sorted : 오름차순
fruit = ['사과','귤','복숭아','파인애플'] s_fruit = sorted(fruit) print(s_fruit) print(fruit) ========= RESTART: C:/Users/study/파이썬 연습과제/study.py ========= ['귤', '복숭아', '사과', '파인애플'] ['사과', '귤', '복숭아', '파인애플'] >>>
sorted : 내림차순
fruit = ['사과','귤','복숭아','파인애플'] s_fruit = sorted(fruit,reverse=True) print(s_fruit) print(fruit) ========= RESTART: C:/Users/study/파이썬 연습과제/study.py ========= ['파인애플', '사과', '복숭아', '귤'] ['사과', '귤', '복숭아', '파인애플'] >>>
리스트 컴프리헨션
조건을 만족하는 항목으로 리스트를 간결히 생성하는 컴프리헨션
for문으로 리스트 생성
리스트 = []
for 항목 in 시퀀스 :
if 조건식 :
리스트.append(항목연산식)
even = [] for i in range(2,11,2): even.append(i) print(even) >>[2,4,6,8,10]
컴프리헨션으로 리스트 생성
seq = [i for i in range[10]] print(seq) >>[0,1,2,3,4,5,6,7,8,9]
리스트 대입에 의한 동일 리스트의 공유
리스트에서 대입 연산자 =
얕은 복사
대입되는 변수가 동일한 시퀀스를 가리킴
결국 변수 f2와 f1은 하나의 같은 리스트
f1 = ['사과','귤','복숭아','파인애플'] f2 = f1 //대입연산자 사용 f2.pop() '파인애플' print(f1) >>['사과','귤','복숭아'] print(f2) >>['사과','귤','복숭아']
깊은복사
새로운 리스트를 만들어 복사
슬라이스 [:]
copy() //로도 사용가능
또는 list() 함수
f1 = ['사과','귤','복숭아','파인애플'] f2 = f1[:] //깊은 복사 f2.pop() '귤' print(f1) >>['사과','귤','복숭아','파인애플'] print(f2) >>['사과','복숭아','파인애플']
변수의 동일 객체 여부를 검사하는 is
문장 is
피연산자인 변수 2개가 동일한 메모리를 공유하는지 검사
같으면 ture , 다르면 false를 반환
f1 = ['사과','귤','복숭아','파인애플'] f2 = f1 print(f1 is f2) >>true print(f1 is f3) false
수정할수 없는 항목의 나열인 튜플
튜플은 리스트와 달리 항목의 순서나 내용의 수정이 불가능(중요!!!)
콤마로 구분된 항목 표현
각각의 항목은 정수,실수,문자열,리스트,튜플 등 제한이 없다
빈 튜플 생성
()
함수 tuple()
항목이 하나인 튜플을 표현할 때는 마지막 콤마를 반드시 붙인다
sorted() del //list와 동일
+
튜플 연결
*
항목이 횟수만큼 반복된 튜플을 반환
내장함수 sorted()
튜플 항목의 순서를 정렬한 리스트를 반환
문장del
튜플 변수 자체의 제거
반응형'Languages > python' 카테고리의 다른 글
[python]파이썬 기초/중복과 순서가 없는 집합/집합 연산자와 메소드/내장함수 zip()과 enumerate()/시퀀스 간의 변환 (0) 2021.04.07 [python]파이썬 딕셔너리/딕셔너리 함수/dict()/딕셔너리 메소드 (0) 2021.04.07 [python]달 출력 예제/while문을 이용한 사칙연산 계산기 예제 (0) 2021.03.24 [python]파이썬 random문/break문/continue문 (0) 2021.03.24 [python]파이썬 조건문/반복문/조건문 예제/반복문 예제/구구단 예제 (2) 2021.03.24