상세 컨텐츠

본문 제목

3. 파이썬 기초, 리스트와 메소드 몇 ( 교재 - 한입에 쏙 파이썬 #19 ~ #30 )

IT & 프로그래밍

by 천승원 2019. 6. 8. 17:47

본문

리스트 만들기

 

리스트는 [] 대괄호와 , 콤마를 사용해서 만든다

저장하는 값은 자료형이 아니여도 되며 뭐든 함께 저장할 수 있다.

 

 

***빈 리스트

빈 리스트는 그릇의 개념으로 생각하면 된다. 당장은 내용물이 없지만 추후 값을 담기위해 미리 빈

그릇을 준비해 놓는 것이다. 예를들면 연산결과를 리스트에 저장하려 한다면, 어떤 값을 추가할지는

 연산이 끝난 후에나 알수있기 때문에 미리 빈 리스트를 만들어 놓고 나중에 연산결과를 추가하면

된다.

 

>>> #리스트 만들기

>>>

>>> 내 가방=[]

SyntaxError: invalid syntax

>>> _가방=[]

>>> print(_가방)

[]

>>> #띄어쓰기는 언제나 _ 를 쓰자.

>>>

>>> 동생_가방=["가위",7,_가방]

>>> print(동생_가방)

['가위', 7, []]

>>> #리스트 안에 리스트도 당연히 가능

>>> 

 

 

List에 값 추가하기
리스트.append(“값”) 방식으로 추가한다.

.append(“값”)

 

 

Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license()" for more information.

>>> candies = ['딸기맛', '레몬맛', '수박맛', '박하맛', '우유맛']

>>> print(candies)

['딸기맛', '레몬맛', '수박맛', '박하맛', '우유맛']

>>>candies.append('콜라맛','포도맛')

TypeError: append() takes exactly one argument (2 given)

.append를 쓸 경우 리스트에 한번에 1개의 값만 추가가 가능하다.

>>> candies.append('콜라맛')

>>> candies.append('포도맛')
이런식으로 추가

 

 


del을 이용하여 값 삭제하기
->del
리스트(인덱스 넘버)

 

 

>>> del.candies(3)

SyntaxError: invalid syntax
-> del
띄고 리스트임을 명심
>>> del candies[3]

>>> print(candies)

['딸기맛', '레몬맛', '수박맛', '우유맛', '콜라맛', '포도맛'] -> 인덱스 3번에 위치한 박하맛이 삭제되었다. 하지만 리스트가 너무 많아서 인덱스 넘버를 정확히 모를 때는 뒤에서부터 -1, -2 … 숫자를 입력해도 된다.

 

*** 인덱스 넘버는 모르겠고 값의 이름만 알 때, del을 쓰는 것 보다 remove를 쓰는 편이 용이하다. (강의 댓글보고 알았다.)

>>> remove candies['수박맛']

SyntaxError: invalid syntax

>>> candies.remove('수박맛')

>>> print(candies)

['딸기맛', '레몬맛', '우유맛', '콜라맛', '포도맛']

remove를 쓸 때 주의점은 띄어쓰기가 아니라 . 점을 찍어야 한다.

 

* del은 띄어쓰기한 뒤 리스트명 + (인덱스 넘버)
** remove
는 점 찍구 리스트명 + (값 명칭)

 

 

 

 

 

 

 

 

 

 

>>> #여러값 가져오기

>>> #”슬라이싱이라 부른다. 리스트에서 여러 값(리스트)를 잘라서 가져오는 것

>>> #인덱싱vs슬라이싱:한개의 값 vs 여러값

**슬라이싱 하는 방법

 

리스트이름[ 시작 값 인덱스 넘버 : 마지막 값 인덱스 넘버 +1 ]

[ ]: 을 사용한다.

마지막 값에 +1 더하는 것이 약속!

 

 

 

>>> week=['','','','','','','']

>>> print(week)

['', '', '', '', '', '', '']

>>> print(week[2:5]) 마지막 인덱스 +1

['', '', '']

 

 

 

 

 

교재대로 하다가 궁금증이 생겼다.

슬라이싱한 값 수,,금을 학원가는날로 변수이름을 짓고

Print(학원가는날)을 하였을 때

원본 리스트의 수,,금이 나올까?라는 의문에 실험을 해봤는데

오히려 원본리스트 값이 망가졌다.

~ 분명 방법이 있을텐 데, 개발자 칭구들에게 물어봐야겠다.

>>> week[2:5] = "학원 가는 날"

>>> print(week)

['', '', '', '', ' ', '', '', ' ', '', '', '']

>>> print(학원가는날)

Traceback (most recent call last):

  File "<pyshell#31>", line 1, in <module>

    print(학원가는날)

NameError: name '학원가는날' is not defined

>>> week=['','','','','','','']

>>> print(week)

['', '', '', '', '', '', '']

>>> week[2:5]

['', '', '']

>>> "학원가는날"=week[2:5]

SyntaxError: can't assign to literal

>>> 

 

 

 

 

 

 

#리스트에서 값을 가져오는 코드

#print는 여러 개의 값을 출력할 수 있다.

#각 값은 , 콤마로 구분한다.

 

 

#리스트.sort() 를 이용해 정렬하는 방법

#.sort()메소드는 리스트의 값을 알파벳이나 한글의 자모, 숫자의 크기 순서대로 정렬을 해준다.

#거꾸로 정렬하고싶다면 .sort(reverse=True) 코드를 넣어주면 된다.

 

 

 

#갯수를 세는 메소드 print(리스트.count())  괄호안 값이 리스트안에 몇개 있는지 센다.

 

 

 

>>> print(candies)

['딸기맛', '레몬맛', '우유맛', '콜라맛', '포도맛']

>>> candies.append("코딱지맛")

>>> candies.append("가방맛")

>>> candies.append("나방맛")

>>> print(candies)

['딸기맛', '레몬맛', '우유맛', '콜라맛', '포도맛', '코딱지맛', '가방맛', '나방맛']

>>> #대충 리스트 값을 늘려주고

>>>

>>> cat_candy=candies[2]

>>> print("고양이에게는","cat_candy","사탕을 줘요.")

고양이에게는 cat_candy 사탕을 줘요.

>>> cat_candy=candies[2]

>>> print("고양이에게는",cat_candy,"사탕을 줘요.")

고양이에게는 우유맛 사탕을 줘요.

>>> #print에서 따옴표안에 들어간 값은 텍스트로 인식이 되는것을 까먹고 또 실수를 했다.

>>>

>>>

>>> #정렬하기

>>> print(candies)

['딸기맛', '레몬맛', '우유맛', '콜라맛', '포도맛', '코딱지맛', '가방맛', '나방맛']

>>> candies.sort()

>>> print(candies)

['가방맛', '나방맛', '딸기맛', '레몬맛', '우유맛', '코딱지맛', '콜라맛', '포도맛']

>>> print(candies(reverse=True)

print(candies)

      SyntaxError: invalid syntax

>>> print(candies.sort(reverse=    True))

None

>>> candies.sort(reverse=True)

>>> print(candies)

['포도맛', '콜라맛', '코딱지맛', '우유맛', '레몬맛', '딸기맛', '나방맛', '가방맛']

>>> #중간에 뻘짓했는데, 아직 코드쓰는게 익숙하지 않다보니 그런거같다.

>>>

>>>

>>> #개수세기

>>> print(candies.count('레몬맛'))

1

>>> candies.append("나방맛")  하나 늘려주고

>>> print(candies.count("나방맛"))

2  -> 갯수가 증가한걸 확인

>>> print(candies)

['포도맛', '콜라맛', '코딱지맛', '우유맛', '레몬맛', '딸기맛', '나방맛', '가방맛', '나방맛']

-> 전체 값 한번 더 확인.

 

https://www.youtube.com/watch?v=ul-q_dyNCqM&list=PLGPF8gvWLYyontH0PECIUFFUdvATXWQEL&index=31

 

관련글 더보기

댓글 영역