딩굴댕굴

Python - 11.자료구조2

by jennysgap

BOX

자료구조2

11.1 리스트의 메서드
• append
• extend
• insert
• remove
• pop
• clear
• index
• count
• sort
• reverse
• copy

# 같은 표현들 (마지막에 숫자 추가)

mylist = [1,2,3] mylist.insert(3,4)

#mylist.append(4)

#mylist.insert(len(mylist),4) print(mylist)

# 스택구조표현 = FILO (First in last out)

mylist = []

mylist.append(1)     # 푸쉬 (쌓다)

mylist.append(2)

mylist.append(3)

mulist.pop()         # 팝 (빼내다)

mulist.pop()

mulist.pop()

mylist = [1,2,3,4,5]

mylist.clear

print(mylist)

mylist = [1,2,3,1,5,1]

newlist = mylist        # 같은 객체에 접근하여 메소드를 호출

print(mylist)

print(newlist)

newlist.clear()

print(id(mylist)) print(id(newlist))      # id를 통해 주소가 같은 번지를 가리키고 있다는 것을 알 수 있음


mylist = [1,2,3,1,5,1] newlist = mylist.copy()    # 데이터 내용은 같지만, 다른 주소에 객체가 생김 (사본 객체 만들기)

#newlist = mylist[:]       # 슬라이싱을 이용한 사본 객체 만들기

print(mylist) print(newlist) newlist.clear() print(id(mylist)) print(id(newlist))


11.2 튜플의 메서드

• count

• index

mylist = ('a','b','b','c','d','d','e') cnt = mylist.count('b')

idx = mylist.index('b')

print('b의 개수:',cnt)

print('b가 처음 나온 인덱스:',idx)


11.3 딕셔너리의 메서드

• get

• clear

• copy

• keys

• values

• pop

• ....

mydic={'박지성':'축구', '이승엽':'야구', '김연아':'피겨'} print(mydic.get('박지성')) print(mydic.get('황영조')) print(mydic.get('황영조', '운동선수'))    #'황영조'키값을 찾아보고 없으면 운동선수를 결과값으로 출력한다.

mydic={'박지성':'축구', '이승엽':'야구', '김연아':'피겨'}
newdic = mydic
print(id(mydic), id(newdic))
newdic = mydic.copy
print(id(mydic), id(newdic))

mydic.clear()
print(mydic)
print(newdic)
mydic={'박지성':'축구', '이승엽':'야구', '김연아':'피겨'}

var = mydic.keys()
print(var)
print(type(var))

var = mydic.values()
print(var)
print(type(var))

mydic={'박지성':'축구', '이승엽':'야구', '김연아':'피겨'} var = mydic.keys() print(type(var)) mylist = list(var) print(mylist)

mydic={'박지성':'축구', '이승엽':'야구', '김연아':'피겨'} var = mydic.values() print(type(var)) mylist = list(var) print(mylist) mytuple = tuple(var) print(mytyple)

mydic={'박지성':'축구', '이승엽':'야구', '김연아':'피겨'} key = '박지성' data = mydic.pop(key) print(type(data)) print(data) print(mydic)


11.4 집합의 메서드

• add

• pop

• remove

• discard

• clear

• copy

• union                합집합

• intersection      교집합

• difference         차집합

• ...

myset = set(['a','b','b','c','d','e','e','f'])

myset.add('h')
print(myset)

myset.update(['i','j','k'])
print(myset)

ele = myset.pop()
print(ele)
print(myset)

myset = set(['a','b','b','c','d','e','e','f']) myset.remove('a') print(myset)

#myset.remove('i')    # 데이터가 있다고 가정하기 때문에 없으면 오류발생 myset.discard('i')    # 데이터가 없어도 가능(없으면 넘어가고 있으면 삭제) print(myset)

myset = set(['a','b','b','c','d','e','e','f'])

newset = myset
print(id(newset), id(myset))
newset = myset.copy()
print(id(newset), id(myset))

myset.clear()
print(myset)
print(newset)

setA = set(['a','b','c','d','e','f']) setB = set(['b','c','e','g','h','i','j','k']) result = setA.union(setB)    # 합집합 #result = setA | setB print('집합A:', setA) print('집합B:', setB) print('합집합:', result)

setA = set(['a','b','c','d','e','f']) setB = set(['b','c','e','g','h','i','j','k']) result = setA.intersection(setB)    # 교집합 #result = setA & setB print('집합A:', setA) print('집합B:', setB) print('교집합:', result)

setA = set(['a','b','c','d','e','f'])
setB = set(['b','c','e','g','h','i','j','k'])
print('집합A:', setA)
print('집합B:', setB)

result = setA.difference(setB)      #result = setA - setB
print('차집합(A-B):', result)
result = setB.difference(setA)      #result = setB - setA
print('차집합(B-A):', result)


11.5 다양한 변수할당 방법

mytuple = ('Hello', 'World')
(var1, var2) = mytuple

print(var1,end=' ')
print(var2)

mylist = ['fly', 'to the', 'moon']
[var1, var2, var3] = mylist

print(var1, end=' ')
print(var2, end=' ')
print(var3)
# unpacking assignment
(a,b,c) = ['Hello', 'World', 'Hi']
#a,b,c = ('Hello', 'World', 'Hi')
#[a,b,c] = ('Hello', 'World', 'Hi')
print(a)
print(b)
print(c)

mylist = ['Hello', 'World', 'Hi'] mylist.append('banana') [a,b,*c] = mylist    # *쓰면 나머지 한번에 출력 print(a) print(b) print(c)

var1 = var2 = 'Hello World' print(var1) print(var2) num5 = num4 = num3 = num2 = num1 = 10 print(num1, num2, num3, num4, num5)


#print(num = 10)    이렇게 표현할 수 없음!

# 변수 두개를 서로 바꾸는 방법

a = 10 b = 20 print('a:', a, 'b:', b) temp = a a = b b = temp print('a:', a, 'b:', b) (a,b) = (b,a)        # 안에 내용 서로 바꾸기, (괄호)생략가능하다. print('a:', a, 'b:', b)


11.6 보충자료

num = 2
result = 'True' if num else 'False'
print(num, '은 ', result)

num = 0
result = 'True' if num else 'False'
print(num, '은 ', result)

str = 'Hello'
result = 'True' if str else 'False'
print(str, '은 ', result)

str = ''
result = 'True' if str else 'False'
print(str, '은 ', result)
mytuple = ()
result = 'True' if mytuple else 'False'
print(mytuple, '은 ', result)

mytuple = (1, )
result = 'True' if mytuple else 'False'
print(mytuple, '은 ', result)

mylist = []
result = 'True' if mylist else 'False'
print(mylist, '은 ', result)

mylist.append('data')
result = 'True' if mylist else 'False'
print(mylist, '은 ', result)
myset = set([])
result = 'True' if myset else 'False'
print(myset, '은 ', result)

myset = set([1])
result = 'True' if myset else 'False'
print(myset, '은 ', result)

mydic = {}
result = 'True' if mydic else 'False'
print(mydic, '은 ', result)

mydic['key1'] = 'data1'
result = 'True' if mydic else 'False'
print(mydic, '은 ', result)

* 데이터가 있으면 True, 데이터가 없으면 False

* 숫자일 경우, 0이면 False 0이 아니면 True


반응형

'BOX' 카테고리의 다른 글

해킹 용어 정리 1  (0) 2017.01.30
파이썬 관련 사이트 정리  (0) 2017.01.26
알고리즘 연습 사이트  (0) 2017.01.26
Python - 10.자료구조1  (0) 2017.01.25
보안뉴스 스크랩  (0) 2017.01.25

블로그의 정보

jennysgap

jennysgap

활동하기