스터디자료/Python 스터디

ch2 - 리스트 데이터 (head first python - 개정판)

바위맨 2018. 9. 29. 21:22
반응형


1. 변수

1.1 숫자

  • 사용되는 숫자는 기본적으로 '정수'를 사용하는 것으로 제한 ( c 와 동일)

1.2 문자열

  • 변수에 문자열을 할당할 경우 자동으로 인식 & 저장 수행
test_string = "coffee" // 인터프리터는 test_string에 대해서 문자열이라는 선언을 하지 않았음에도, 저장되는 "coffee"문자열을 저장한다. 
// python에서는 변수에 모든 data 형의 저장이 가능하다. ( 문자열, 숫자 가리지 않고 모두 저장 가능)

1.3 객체 

  • Python에서 모든 것은 객체로 취급된다. 
  • 모든 data는 객체로 저장된다. (그러나, 코드 개발에서 클래스를 작성해야하는 것은 아니다)


2. Python의 자료 구조 

  • 리스트(list), 튜플(tuple), 딕셔너리(dictionary), 집합(set) 의 자료 구조 종류를 갖는다. 

2.1 리스트

  • 배열 (array)와 유사
  • index를 통해서 객체로의 접근이 가능
  • 리스트의 크기는 동적으로 변화 가능
  • 각 객체는 콤마(,)로 분리
  • 각 객체를 일일이 대입해서 만들 경우 리터럴 리스트 라고 한다 ( literal list )
  • 서로 다른 자료형의 객체를 자유롭게 섞어서 사용이 가능하다. 

2.1.1 리스트 생성

  • 좌측은 변수명 = 우측은 리스트 선언

test_list = [] ; // test_list 라는 이름의 리스트를 생성한다. 이때, 리스느는 비어있다.

2.1.2 append

vowels = ['a', 'e', 'i', 'o','u']    // vowels 이라는 이름의 리스트 생성
print(vowels)
vowels.append('y')              // 'y'를 추가 함
print(vowels)

['a', 'e', 'i', 'o', 'u']
['a', 'e', 'i', 'o', 'u', 'y']

2.1.3 리스트 내의 데이터 확인

  • 'in' 또는 'not in' 키워드를 통해서 데이터를 확인
vowels = ['a', 'e', 'i', 'o','u']
word = "milliways"
for letter in word:
    if letter in vowels:
     print(letter)

i
i
a

vowels = ['a', 'e', 'i', 'o','u']
word = "milliways"
found = []
for letter in word:
    if letter in vowels:
        if letter not in found:
            found.append(letter)

for vowel in found:
    print(vowel)


i

a

vowels = ['a', 'e', 'i', 'o','u']
word = input("Provide a word to search for vowels: ")  // key 입력을 받아서 문자열 리스트를 생성한다. 
found = []
for letter in word:
    if letter in vowels:
        if letter not in found:
            found.append(letter)

for vowel in found:
    print(vowel)


=============== RESTART: D:/프로그래밍/파이썬/example file/vowels3.py ===============
Provide a word to search for vowels: aaaaeidujdkskdj
a
e
i
u

2.1.4 remove

  • 리스트 내에서 특정 객체를 삭제하고, 전체 사이즈를 1 만큼 줄인다.
>>> nums = [1,2,3,4]
>>> nums
[1, 2, 3, 4]
>>> nums.remove(3)
>>> nums
[1, 2, 4]

2.1.5 pop

  • 인텍스를 기준으로 객체를 리스트에서 삭제하고 반환한다. 
  • 인덱스를 지정하지않을 경우에는 리스트의 마지막 객체를 삭제하고 반환한다. 
>>> nums
[1, 2]
>>> nums.pop()
2
>>> nums
[1]

2.1.6 extend

  • 다른 리스트를 인자로, 기존 리스트에 추가한다. 
>>> nums
[1]
>>> nums.extend([1,3])
>>> nums
[1, 1, 3]

2.1.7 insert

  • append, extend 는 리스트의 마지막 위치에만 데이터를 추가할 수 있게 해준다. 
  • insert를 이용해서 지정한 인덱스에 객체를 추가할 수 있도록 해준다. 
>>> nums
[1, 1, 3]
>>> nums.insert(0,9)
>>> nums
[9, 1, 1, 3]

2.1.8 copy

  • 동일한 리스트를 다른 변수로 복사할 경우
  • copy를 사용하지 않고 변수를 생성하게 되면, 복사가 아닌 레퍼런스가 추가된다. 
  • 즉,  a= [1,2,3,4] = b 이런 식으로 두개의 변수는 동일한 리스트를 갖게 해준다. 
  • b = a.copy() 를 사용할 경우 동일한 리스트가 복사되어 b와 연결된다. 

2.1.9 리스트의 인덱스 

  • 리스트의 인덱스는 양의 인덱스와 음의 인덱스로 사용가능
  • 양의 인덱스: 리스트의 처음 부터 0 으로 시작해서 증가
  • 음의 인덱스: 리스트의 끝에서 -1로 시작해서 앞으로 오면서 감소 (리스트를 검색할때 끝 위치를 알면 정확한 offset 을 알지 못해도 정확하게 지정 가능)

2.2 튜플 

  • 리스트와 유사
  • 변경할 수 없는 리스트
  • index 를 통해서 객체로 접근 가능

2.3 딕셔너리

  • 순서가 없는 키/값의 쌍
  • 지정해서 임의의 순서로 출력은 가능
  • 저장하는 순서와 상관이 없음 --> ch3에서 사용 방법을 설명

2.4 집합

  • 중복된 객체가 없음
  • 순서가 없음




반응형

'스터디자료 > Python 스터디' 카테고리의 다른 글

[Python] Word문서에서 Excel로 데이터 추출하기  (0) 2021.03.26
ch1 - 기초  (0) 2018.09.15
python study 시작과 최종 계획  (0) 2017.12.29