printf("ho_tari\n");

자료구조 본문

Python

자료구조

호타리 2023. 10. 16. 15:03

<stack.py>

word = input("Input a word: ")
world_list = list(word)
print(world_list)

result = []

for _ in range(len(world_list)):
    result.append(world_list.pop())

print(result)
print(word[::-1])

<compile 결과>

 

<tuple.py>

s = set([1, 2, 3, 1, 2, 3]) # set() 함수를 사용하여 1, 2, 3을 세트 객체로 생성
print(s)

s.add(1)    # 1을 추가하는 명령이지만 중복 불허로 추가되지 않음
print(s)

s.remove(1) # 1 삭제
print(s)

s.update([1, 4, 5, 6, 7])   # [1, 4, 5, 6, 7] 추가
print(s)

s.discard(3)    # 3 삭제
print(s)

s.clear()   # 모든 원소 삭제
print(s)

s1 = set([1, 2, 3, 4, 5])
s2 = set([3, 4, 5, 6, 7])

print(s1.union(s2))   # s1과 s2의 합집합

print(s1 | s2) # set([1, 2, 3, 4, 5, 6, 7])

print(s1.intersection(s2))  # s1과 s2의 교집합

print(s1 & s2)  # set([3, 4, 5])

print(s1.difference(s2))    # s1과 s2의 차집합

print(s1 - s2) # set([1, 2])

<compile 결과>

 

<dictionary.py>

country_code = {}   # 딕셔너리 생성
country_code = {"America": 1, "Korea": 82, "China": 86, "Japan": 81}
print(country_code)

print(country_code.keys())  # 딕셔너리의 키만 출력

country_code["German"] = 49 # 딕셔너리 추가
print(country_code)

print(country_code.values())    # 딕셔너리의 값만 출력

print(country_code.items()) # 딕셔너리의 데이터 출력

for k, v in country_code.items():
    print("Key:", k)
    print("Value:", v)

print("Korea" in country_code.keys())   # 키에 "Korea"가 있는지 확인

print(82 in country_code.values())  # 값에 82가 있는지 확인

<compile 결과>

 

<deque.py>

from collections import deque

deque_list = deque()
deque_list2 = deque()

for i in range(5):
    deque_list.append(i)

print(deque_list)

deque_list.pop()
print(deque_list)

deque_list.pop()
print(deque_list)

deque_list.pop()
print(deque_list)

for i in range(5):
    deque_list2.appendleft(i)

print(deque_list2)

print(deque(reversed(deque_list2)))

deque_list2.rotate(2)
print(deque_list2)

deque_list2.rotate(2)
print(deque_list2)

deque_list2.extend([5, 6, 7])
print(deque_list2)

deque_list2.extendleft([5, 6, 7])
print(deque_list2)

<compile 결과>

 

<ordereddict1.py>

d = {}
d['x'] = 100
d['l'] = 500
d['y'] = 200
d['z'] = 300

for k, v in d.items():
    print(k, v)

<compile 결과>

 

<ordereddict2.py>

from collections import OrderedDict # OrderedDict 모듈 선언

d = OrderedDict()
d['x'] = 100
d['y'] = 200
d['z'] = 300
d['l'] = 500

for k, v in d.items():
    print(k, v)

<compile 결과>

 

<ordereddict3.py>

def sort_by_key(t):
    return t[0]

from collections import OrderedDict # OrderedDict 모듈 선언

d = dict()
d['x'] = 100
d['y'] = 200
d['z'] = 300
d['l'] = 500

for k, v in OrderedDict(sorted(d.items(), key=sort_by_key)).items():
    print(k, v)

<compile 결과>

 

<defaultdict1.py>

from collections import defaultdict

d = defaultdict(lambda: 0)  # Default 값을 0으로 설정
print(d["first"])

<compile 결과>

 

<defaultdict2.py>

from collections import defaultdict

s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)

for k, v in s:
    d[k].append(v)

print(d.items())
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

<compile 결과>

 

<counter.py>

from collections import Counter

text = list("gallahad")
print(text)

c = Counter(text)
print(c)

print(c["a"])

c = Counter({'red': 4, 'blue': 2})
print(c)
print(list(c.elements()))

c = Counter(cats = 4, dogs = 8)
print(c)
print(list(c.elements()))

c = Counter(a = 4, b = 2, c = 0, d = -2)
d = Counter(a = 1, b = 2, c = 3, d = 4)
c.subtract(d)   # c - d
print(c)

c = Counter(a = 4, b = 2, c = 0, d = -2)
d = Counter(a = 1, b = 2, c = 3, d = 4)
print(c + d)
print(c & d)    # 두 객체에 같은 값이 있을 때
print(c | d)    # 두 객체에서 하나가 포함되어 있다면, 그리고 좀 더 큰 값이 있다면 그 값으로 합집합 적용

from collections import namedtuple

Point = namedtuple('Point', ['x', 'y'])
p = Point(11, y=22)
print(p)

print(p.x, p.y)
print(p[0] + p[1])

<compile 결과>

 

<textmining.py>

text = """A press release is the quickest and easiest way to get free 
publicity. If well written, a press release can result in multiple 
published artivles about your firm and its products. And that can mean new
prospects contacting you asking yout to sell to them.""".lower().split()

from collections import defaultdict

word_count = defaultdict(lambda: 0) # Default 값을 0으로 설정

for word in text:
    word_count[word] += 1

from collections import OrderedDict

for i, v in OrderedDict(sorted(word_count.items(), key=lambda t: t[1], reverse=True)).items():
    print(i, v)

<compile 결과>

'Python' 카테고리의 다른 글

파이썬 스타일 코드 II (lambda, map, asterisk, linear_algebra)  (0) 2023.10.16
파이썬 스타일 코드 I (join, split, list_comprehension, loop, enumerate)  (0) 2023.10.16
문자열  (0) 2023.10.16
함수  (0) 2023.10.16
반복문  (0) 2023.10.12