파이썬기초11 : 리스트(List) 다루기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 1,800 조회
- 0 추천
- 목록
본문
# 리스트
# - []으로 정의하고 표현한다.
# - 순서가 있다. 값은 중복되도 상관 없다
# - 리스트는 일반개념으로 배열로 연상해도 좋다.
# - 리스트는 스택구조와 큐구조 모두를 사용할 수 있다.
# - 리스트를 스택구조로 사용할때, pop()으로 빼내면 마지막값을 빼낸다.
# - 스택은 한쪽으로만 넣고 빼내는 구조이다. (LIFO)
# - 큐는 한쪽으로 넣고 반대쪽으로 빼내는 구조이다. (FIFO)
#리스트를 만드는 방법
a = []
type(a)
b = list()
type(b)
colors = ['red', 'green', 'gold']
print(colors)
print type(colors)
# 리스트에 값추가하기 마지막에 추가됨
# append는 무조건 마지막멤버로 추가한다.
colors.append('blue')
print(colors)
# 리스트에 위치 지정하여 값 추가하기
colors.insert(1,'black')
print(colors)
# 리스트에 리스트 추가하기
colors.extend(['white','gray'])
print(colors)
# 값하나 추가됨. append와 같음.
colors += ['red']
print(colors)
#문자열이므로 r, e, d가 각각 요소로 추가됨.
colors += 'red'
print(colors)
# 특정 값의 인덱스 찾기 : 값이 중복되더라도 앞에서 부터 첫번째로 찾아진 값의 인덱스
x = colors.index('red')
print(x)
#특정 값의 인덱스 찾기 : 몇번째 찾아지는 값인지는 지정하여 인덱스값 찾기
x = colors.index('red', 1)
print(x)
x = colors.count('red')
print(x)
# 삭제할 요소 위치를 지정하여 삭제
s = colors.pop(2)
print("pop: {0}".format(s))
print(colors)
# 삭제할 값을 지정하여 삭제
s = colors.remove('white')
print("remove gold : {0}".format(s))
# 값 정렬하기 : 기본 오름차순
colors.sort()
print(colors)
# 값 정렬하기 : 내림차순
colors.reverse()
print( colors)
# 리스트의 구성원들의 타입이 같을 필요 없다
#리스트의 멤버로 리스트가 들어갈 수 있다
a.append( b )
a.append( b[:] )
print( a )
#리스트 b에 값을 넣어 보자.
b.append(2)
b.append(3)
print(b)
[2, 3]
print(a)
['cat', 1, [2, 3]]
# 예제1
a = [10,20,30,40,50] # 참조 : 리스트의 참조주소값을 a에 넘김
print(a)
print(type(a))
print(a[0])
print(a[0:4])
a[0] = 100 #리스트는 순서가 있으며, mutable하기 때문에. 데이터 수정 가능
print(a[0])
# 예제2
a = [10, 3, 14, True, 'abc'] # 리스트의 요소로는 숫자, 불리언, 문자 , 리스트, 딕셔너리 모두 가능함.
print(a)
print(type(a)) #list 객체임.
print(a[3]) #불리언 값으로 출력됨.
print(type(a[3]))
#예제3
a = [10, 20, 30, 40, 50, 20]
a.append(60)
a.append(70)
print(a)
a.insert(1,100) #인덱스를 지정해서 삽입함.
print(a)
a.remove(30) #요소 값을 지정해서 제거함.
print(a)
a.pop(3) #인덱스를 지정해서 삭제
print(a)
a.clear() # 요소값 모두 삭제
print(a)
print(len(a))# 전체 요소 갯수
print(a.count(20)) #특정요소값이 몇개 있는가
a.append(20)
print(a.count(20))
# 리스트끼리 더하기, a와 c의 자체는 변하지 않는다
a=['cat', 1, 'dog', [2, 3], []]
c=[5,6,7]
a+c
Out[]: ['cat', 1, 'dog', [2, 3], [], 5, 6, 7]
# a에 c를 넣기, a의 값에 c의 값이 차례로 추가된다. a값이 변경된다.
a.extend(c)
a
Out[]: ['cat', 1, 'dog', [2, 3], [], 5, 6, 7, 5, 6, 7]
# 리스트에 insert()함수로 값을 넣기
mylist
Out[]: [1, 2, 3, 4, 5]
mylist.insert(6,7)
mylist
Out[]: [1, 2, 3, 4, 5, 7]
#리스트의 길이 구하기
len(a)
Out[]: 14
#리스트 값 삭제하기: 인자로 지정하기
a
Out[]: ['cat', 1, 'dog', [2, 3], [], 5, 6, 7, 5, 6, 7, 5, 6, 7]
del a[0]
a
Out[]: [1, 'dog', [2, 3], [], 5, 6, 7, 5, 6, 7, 5, 6, 7]
#리스트 값 삭제하기 : 값으로 지정하기
a
Out[]: [1, 'dog', [2, 3], [], 5, 6, 7, 5, 6, 7, 5, 6, 7]
a.remove('dog')
a
Out[]: [1, [2, 3], [], 5, 6, 7, 5, 6, 7, 5, 6, 7]
#리스트값 삭제하기 : pop()함수와 remove()함수 이용하여 빼내기
# pop()함수는 마지막 값을 빼낸다.
mylist = [1,2,3,4,5]
mylist.pop()
Out[]: 5
mylist
Out[]: [1, 2, 3, 4]
mylist.remove(3)
mylist
Out[]: [1, 2, 4]
# remove()함수는 빼낼 값을 지정해서 빼낸다.
# 빼낼값이 중복되면 앞에것을 먼저 빼낸다.
mylist
Out[]: [1, 2, 4, '5', '2']
mylist.remove(2)
mylist
Out[]: [1, 4, '5', '2']
# 동일한 값이 여러개면 첫번째 매칭되는 값이 삭제된다.
a
Out[]: [1, [2, 3], [], 5, 6, 7, 5, 6, 7, 5, 6, 7]
a.remove(5)
a
Out[]: [1, [2, 3], [], 6, 7, 5, 6, 7, 5, 6, 7]
#리스트 정렬하기
a
Out[]: [3, 5, 6, 11, 8, 9, 54, 2, 3, 4, 6, 7]
a.sort()
a
Out[]: [2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 11, 54]
# 리스트의 값의 데이터형에는 제한이 없다.
# 정수형, 실수형, 문자열, 튜플, 리스트, 딕셔너리등등 모두 가능하다.
myList = [10, "abc", (10,20,30), 3.14]
print(myList[0])
print(myList[1])
print(myList[2]) #튜플로 출력됨.
print(type(myList[2]))
print(myList[2][0]) #튜플로 출력된 값의 인덱스 0의 값
print(myList[2][2]) #튜플로 출력된 값의 인덱스 2의 값
mylist = [10, "abc", (1,2,3), {'a':10}, [4,5,6]]
mylist[0]
Out[]: 10
mylist[1]
Out[]: 'abc'
mylist[2]
Out[]: (1, 2, 3)
mylist[3]
Out[]: {'a': 10}
mylist[4]
Out[]: [4, 5, 6]
type(mylist[2])
Out[]: tuple
type(mylist[3])
Out[]: dict
type(mylist[4])
Out[]: list
# range() 함수--------------------------------
#리스트를 만들어주는 range함수. 시작값 <= n <끝값
# range(시작값, 끝값, 증가치)
n = range(1,10,1)
print(list(n)) #결과를 리스트로 출력함.
#1부터 10까지 하나씩 차례대로 출력 for문과 range함수를 이용하여
for n in range(1,10+1):
print(n)
# for문과 range()함수를 이용하여 리스트 만드는 방법
my = [ n for n in range(1, 10+1)]
print(my)
my = [n**2 for n in range(1,10+1)]
print(my)
# for문과 range문 내에서 if문을 사용한 리스트 생성
my = [n*10 for n in range(1, 10+1) if n%2 == 0]
print(my)
관련자료
-
이전
-
다음