강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

파이썬기초11 : 리스트(List) 다루기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

# 리스트 


# - []으로 정의하고 표현한다.

# - 순서가 있다. 값은 중복되도 상관 없다

# - 리스트는 일반개념으로 배열로 연상해도 좋다.

# - 리스트는 스택구조와 큐구조 모두를 사용할 수 있다. 

# - 리스트를 스택구조로 사용할때, 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)



관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,156 명
  • 현재 강좌수 :  36,513 개
  • 현재 접속자 :  277 명