리스트(list)

요소를 삭제하거나 변경 가능(mutable(가변성)) ->append, del, remove, pop ...

서로 다른 type의 데이터를 담을 수 있다

list안에 list로 element를 표현할 수 있다.

list_data = [0,1,2,3,4,5,6,7,8,9]
del list_data[6]
print(list_data) -> [0, 1, 2, 3, 4, 5, 7, 8, 9]

 

insert() - 특정한 위치(인덱스)에 원소를 삽입

myFriends = ['James', 'Robert', 'List', 'Mary']
myFriends.insert(1, 'Pau)
print(myFriends) -> ['James', 'Paul', 'Robert', 'List', 'Mary']

 

remove() - 리스트 내 특정 원소를 삭제

pop() - 리스트 내 특정 인덱스의 원소를 삭제

a = [10,20,30,40,50,60,70,80,90,100]
a.pop(3) #del a[3] 와 동일
a.remove(90)
print(a) -> [10, 20, 30, 50, 60, 70, 80, 100]

 

List Sliding

[start:stop:step]
start : 시작index번호
stop : 끝나는 index번호(단, 포함하지 않음)
step : index간 step(간격)

list_data = [0,1,2,3,4,5,6,7,8,9]
print(list_data[:3])
print(list_data[7:])
print(list_data[::2])
print(list_data[::3])
print(list_data[1::2])
print(list_data[1:5:3])

[0, 1, 2]
[7, 8, 9]
[0, 2, 4, 6, 8]
[0, 3, 6, 9]
[1, 3, 5, 7, 9]
[1, 4]

 

append() - 리스트의 뒤에 새로운 원소를 삽입

a = [1, 2, 3]
a.append(4)
a
-> [1, 2, 3, 4]
a.append([5,6])
a
-> [1, 2, 3, 4, [5, 6]]

 

extend() - 리스트의 뒤쪽에 다른 리스트를 삽입

(extend(x)에서 x는 리스트만 올 수 있음, 원래의 a 리스트에 x 리스트를 더함)

a = [1,2,3]
a.extend([4,5])
a
-> [1, 2, 3, 4, 5]
b = [6, 7]
a.extend(b)
a
-> [1, 2, 3, 4, 5, 6, 7]

 

sort() - 리스트를 오름차순으로 정렬

list2 = [1, 5, 13, 8, 3, -7, 9, 11]
list2.sort()
print(list2)
-> [-7, 1, 3, 5, 8, 9, 11, 13]
list2.sort(reverse=True)
print(list2)
-> [13, 11, 9, 8, 5, 3, 1, -7]

 

index() - 리스트 내 특정 원소의 인덱스를 반환

a = [1,2,3]
a.index(3)
-> 2
a.index(1)
-> 0

 

count() - 리스트 내 특정 원소가 몇 개 포함되어 있는지 반환

a = [1,2,3,1]
a.count(1)
2

 


튜플(tuple)

list와 비슷하지만 요소를 삭제하거나 변경 불가능한 면에서 다르다 (immutable(불변성))

 

 # 투플의 요소는 변경 불가

tuple5[1] = 5
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-73-35d2428361b3> in <module>
----> 1 tuple5[1] = 5 # 투플의 요소는 변경 불가

TypeError: 'tuple' object does not support item assignment

 

count()

tuple7 = ('a','a','a','b','b','c','d')
tuple7.count('a')
-> 3

 

len() - 길이 

t1 = (1, 2, 'a', 'b')
len(t1)
-> 4

 


셋(set)

Set은 python 2.3부터 지원한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다

#중복 값을 갖지 못함

set1 = {1,2,3}
set1a = {1,2,3,3}
print(set1)
print(set1a)
-> {1, 2, 3}
-> {1, 2, 3}

 

set 활용 / 형변환

a = [1,2,3,4,5,5,5]
b = tuple(a)
c = set(a)
type(a)
-> list
b
-> (1, 2, 3, 4, 5, 5, 5)
c
-> {1, 2, 3, 4, 5}
type(c)
-> set

 


딕셔너리(dict)

데이터가 다양해지고 속성과 값들의 표현들이 많아져 단순 List나 tuple로 데이터를 표현하기가 힘들기 때문에 데이터들의 대응관계(속성과 값)를 나타낼 때는 딕셔너리(Dictionary)를 사용하는 것이 좋다

 

특정 key값에 대한 value값 뽑기

dict_data2 = {1:10, 2:20, 3:30, 4:40, 5:50}
print(dict_data2)
print(dict_data2[4])
-> {1: 10, 2: 20, 3: 30, 4: 40, 5: 50}
-> 40

 

value값에 list와 tuple을 넣을 수 있다. 하지만 key에는 tuple만 사용할 수 있다.

(list는 값이 변할 수 있기 때문에 key값으로 사용할 수 없다.)

mixed_dict = {1:10, 'dict_num' : {1:10, 2:20}, "dict_list_tuple" : {"A" : [11,12,13], "B" : (21,22,23)}, "dict_string" : "이것은 책입니다."}
mixed_dict
-> {1: 10,
 'dict_num': {1: 10, 2: 20},
 'dict_list_tuple': {'A': [11, 12, 13], 'B': (21, 22, 23)},
 'dict_string': '이것은 책입니다.'}

 

key-value 값 추가

country_capital = {"영국":"런던", "프랑스":"파리", "스위스":"베른","호주":"캔버라"}

country_capital["독일"]="베를린"
country_capital
-> {'영국': '런던', '프랑스': '파리', '스위스': '베른', '호주': '캔버라', '독일': '베를린'}

 

value값 변경

country_capital["호주"]="캔버라~"
country_capital
-> {'영국': '런던', '프랑스': '파리', '스위스': '베른', '호주': '캔버라~', '독일': '베를린'}

 

keys() - key값 뽑기

fruit_code = {"사과":101, "배":102, "딸기":103, "포도":104, "바나나":105}

print(fruit_code.keys())
-> dict_keys(['사과', '배', '딸기', '포도', '바나나'])

 

values() - value값 뽑기

print(fruit_code.values())
-> dict_values([101, 102, 103, 104, 105])

 

item() - Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 반환

fruit_code.items()
-> dict_items([('사과', 101), ('배', 102), ('딸기', 103), ('포도', 104), ('바나나', 105)])
list(fruit_code.items())
-> [('사과', 101), ('배', 102), ('딸기', 103), ('포도', 104), ('바나나', 105)]

 

update() - 값 변경 또는 추가

(update받는 dict쪽에 해당 key값이 없으면 key-value가 추가되고 key값이 존재하면 대응되는 value값이 수정된다)

fruit_code = {"사과":101, "배":102, "딸기":103, "포도":104, "바나나":105}
fruit_code2 = {"오렌지":106, "수박":107}

fruit_code.update(fruit_code2)
fruit_code

-> {'사과': 101, '배': 102, '딸기': 103, '포도': 104, '바나나': 105, '오렌지': 106, '수박': 107}

 

key-value 삭제

del fruit_code2['수박']
fruit_code2
-> {'오렌지': 106}

 

in

a = {'name':'Jim', 'phone':'01012341234', 'birth': '0521'}
'name' in a
True
'email' in a
False
반응형

+ Recent posts