프로그래밍/파이썬 공부

파이썬 기초 01 리스트와 딕셔너리

winblack22 2021. 7. 14. 23:43

이 시리즈가 어디까지 갈지 모르겠지만...

작년의 나는 블록암호 운용모드 라이브러리도 과제로 제출할 정도의 파이썬 실력을 가졌었으나...

반년의 휴학으로 반복문도 까먹어버린 바보가 되어버렸다...

그래서 시작된 기초 공부... start...

 


  • range() 함수

for 문에서의 range를 까먹고 살았었다.

for i in range(1,10):
	for j in range(1,10):
    	print( i, '*', j, '=', i*j)

* range 함수에서의 end는 "미만"이다.

* range(5) >> for문을 5번 반복한다는 의미이다.

 

  • List 리스트

list는 [] 대괄호로 표시한다. (*아마도 소괄호()는 tuple이었던 것 같다.)

 

  • append() 함수

자료를 리스트의 마지막 원소 뒤에 추가할 수 있다. 하나의 자료만 넣을 수 있다.

>>> my_list = ["Apple", "Banana", "Chamwae", "Durian"]
>>> my_list.append("melon")
>>> my_list
['Apple', 'Banana', 'Chamwae', 'Durian', 'melon']
더보기

@2021.07.15 insert, remove 추가

  • insert() 함수 list.insert(index, data)

append와는 달리, 원하는 인덱스에 자료를 추가할 수 있다. 이 또한 하나의 자료만 넣을 수 있다.

>>> a = [1, 2, 4, 5]
>>> a.insert(2,3)
>>> a
[1, 2, 3, 4, 5]
  • remove() 함수 list.remove(data)

처음 나오는 자료 d를 제거한다.

>>> c = [2, 1, 2, 3]
>>> c.remove(2)
>>> c
[1, 2, 3]

 

  • sort() 함수 : 오름차순을 기준으로 한다. 문자열은 사전순!
>>> mylist = [2, 4, 1, 6, 3, 5]
>>> mylist.sort()
>>> mylist
[1, 2, 3, 4, 5, 6]

sort를 내림차순으로 하고 싶을 때는 reverse = True로 설정해준다.

>>> mylist = [2, 4, 1, 6, 3, 5]
>>> mylist.sort(reverse=True)
>>> mylist
[6, 5, 4, 3, 2, 1]

- 그럼, 그냥 reverse는? 리스트를 뒤에서부터 순회(?)하는 함수다.

>>> mylist.reverse()
>>> mylist
[5, 3, 6, 1, 4, 2]

 

  • len() 함수

길이를 알려준다. 문자열과 리스트의 길이를 알려준다. (리스트는 길이라는 단어보다 크기나 원소의 개수가 더 맞을 것 같다.) 

 

  • 멤버 조사

True/False을 반환한다. item in list 의 형태로 쓴다.

>>> my_list = ["Apple", "Banana", "Chamwae", "Durian"]
>>> var = "Egg" in my_list
>>> var   
False

멤버 조사를 응용하면 count함수를 구현할 수 있을 것 같다. 라고 생각했으나 코드를 쓰는 중 깨달았다.

in은 리스트를 무조건 한바퀴를 돌면서 있나/없나만 확인한다는 걸...

count는 그저 리스트를 돌면서 하나씩 비교해야 하는데...

count를 구현했을 때는 멤버 조사같은 건 필요없다는 걸 깨달았다. 그래도 노력이 담겨있으니 코드를 첨부한다...

#굳이 굳이 count함수를 구현해보았다.
my_list = [2, 4, 1, 6, 3, 5, 2, 12, 2, 9, 2]
my_len = len(my_list)
cnt = 0

for i in range(my_len):
    if(2 == my_list[i]):
        cnt += 1

print(cnt)

 

  • count() 함수
>>> 'watermelon'.count('e')
2

예제는 문자열에서 count를 했지만, 리스트에서도 똑같이 count할 수 있다. 리스트명.count(찾는거)

 

 


날씨가 너무 덥다. 내일마저 공부해야겠다. 문제 몇개 더 풀고 자야지. 내일은 Dictionary 공부를 할거다. 내가 못했던 거라서 걱정된다. 여전히 못 할 거 같아... @2021.07.14


  • Dictionary 사전 { key : value }

짝궁이 있는 자료형이다! 

key : 열쇠처럼 자료를 꺼낼 수 있게 해주는 키워드

value : Dictionary에서 key로 꺼낸 자료

- value 꺼내기 : Dictionary[key]

>>> a = { 'name' : '윈이', 'age' : '22' }
>>> a['name']
'윈이'

- value 추가하기 : Dictionary[key] = value

>>> a['grade'] = 'A+'
>>> a
{'name': '윈이', 'age': '22', 'grade': 'A+'}

- del 함수 : del Dictionary[key]

이 경우, key : value 쌍 전체가 사라진다.

>>> del a['age']
>>> a
{'name': '윈이', 'grade': 'A+'}

** Dictionary의 중요 특징!

key는 변할 수 없는 자료형이어야 한다. 즉, 리스트는 안되고, 튜플은 된다.