Data Structure

Data Structure

์œ ์šฉํ•œ ์ฝ”๋“œ ์ •๋ฆฌ

type
max, min
int, str,
list<append, pop, insert, del, index, reverse, sort>
sorted(some_dict.items(), lambda x: x[1], reverse=True)
reversed(some_list)
''.join(some_list)
len(some_list)
''.join(reversed(some_str))
some_str.startswith(prefix_str)
zip(items, items[1:])
enumerate(some_list)
range(0, len(some_list))
map(str, some_list)
map(''.join, permutations(items, 2))
map(''.join, combinations(items, 2))

์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ž์—ดA๊ฐ€ ๋ฌธ์ž์—ดB์˜ ๋งจ ์•ž์— ์žˆ๋Š”์ง€ ์—ฌ๋ถ€

some_str = 'abcde'
print(some_str.startswith('ab'))
print(some_str.startswith('cde'))

True
False

์•ž๋’ค ๊ฐ’ ๋น„๊ตํ•˜๊ธฐ

items = [1,2,3]
for i in zip(items, items[1:]):
  print(i)

(1, 2)
(2, 3)

๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ

some_str = 'ABC'
print(''.join(reversed(some_str)))

CBA

๋ฆฌ์ŠคํŠธ & ๋”•์…”๋„ˆ๋ฆฌ ์ •๋ ฌ

some_list = {1, 2, 3}
print(sorted(some_list))
some_dict = {'a':1, 'b':2, 'c':3}
print(sorted(some_dict.items(), reverse=True))
tuple_dict = {'a':(1, 3), 'b':(2, 2), 'C':(3, 1)}
print(sorted(tuple_dict.items(), key=lambda x: x[1]))

[1, 2, 3]
[('c', 3), ('b', 2), ('a', 1)]
[('a', (1, 3)), ('b', (2, 2)), ('C', (3, 1))]

๊ฐ€์žฅํฐ์ˆ˜ (๋ฌธ์ž์—ด๋น„๊ต๋Š” ์•„์Šคํ‚ค ๊ฐ’์œผ๋กœ ์น˜ํ™˜๋˜์–ด ์ •๋ ฌ)

numbers = [12, 10, 22]
some_list = list(map(str, numbers))
print(some_list)
some_list.sort(key=lambda x: x*3, reverse=True)
print(some_list)
print(''.join(some_list))

['12', '10', '22']
['22', '12', '10']
221210

์ˆœ์—ด๊ณผ ์กฐํ•ฉ

์ˆœ์—ด์€ ์ˆœ์„œ๋Œ€๋กœ ๋ฝ‘๋Š” ๊ฒƒ

from itertools import permutations
items = ['A', 'B', 'C']
print(list(permutations(items)))
print(list(map(''.join, permutations(items)))) # items์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ˆœ์—ด์„ ๋งŒ๋“ ๋‹ค.
print(list(map(''.join, permutations(items, 2)))) # 2๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ˆœ์—ด์„ ๋งŒ๋“ ๋‹ค

[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
['ABC', 'ACB', 'BAC', 'BCA', 'CAB', 'CBA']
['AB', 'AC', 'BA', 'BC', 'CA', 'CB']

์กฐํ•ฉ์€ ์ˆœ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ฝ‘์•„์„œ ์ˆœ์„œ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ์˜ˆ๋ฅผ๋“ค์–ด, 1,2,3,4 ์ค‘ 2๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋ฝ‘์•„ ์ž์—ฐ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ ์ˆœ์—ด์€ 12,21๊ฐ€ ๋‚˜์˜ฌ ๋•Œ, ์กฐํ•ฉ์€ 12๋งŒ ๋‚˜์˜ด

from itertools import permutations, combinations
items = ['1', '2', '3']
print("์ˆœ์—ด:{}".format(list(map(''.join, permutations(items, 1)))))
print("์ˆœ์—ด:{}".format(list(permutations(items, 2))))
print("์ˆœ์—ด:{}".format(list(map(''.join, permutations(items, 2)))))
print("์กฐํ•ฉ:{}".format(list(map(''.join, combinations(items, 1))))) # ์กฐํ•ฉ์„ ๋งŒ๋“ค๋ ค๋Š” ์•„์ดํ…œ๊ณผ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ ๋ฐ˜๋“œ์‹œ๋„˜๊ฒจ์ค˜์•ผํ•œ๋‹ค.
print("์กฐํ•ฉ:{}".format(list(combinations(items, 2))))
print("์กฐํ•ฉ:{}".format(list(map(''.join, combinations(items, 2)))))

์ˆœ์—ด:['1', '2', '3']
์ˆœ์—ด:[('1', '2'), ('1', '3'), ('2', '1'), ('2', '3'), ('3', '1'), ('3', '2')]
์ˆœ์—ด:['12', '13', '21', '23', '31', '32']
์กฐํ•ฉ:['1', '2', '3']
์กฐํ•ฉ:[('1', '2'), ('1', '3'), ('2', '3')]
์กฐํ•ฉ:['12', '13', '23']

์†Œ์ˆ˜์ฐพ๊ธฐ

def prime_check(n):
  if n < 2:
    return False
  for i in range(2, n):
    if n % i == 0:
      return False
  return True

print(prime_check(1))
print(prime_check(2))
print(prime_check(3))
print(prime_check(9))

False
True
True
False

๋งค๋ฒˆ ์ •๋ ฌ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ

import heapq
l = [3,2,1]
heapq.heapify(l)
print(l)
print(heapq.heappop(l))
print(l)
heapq.heappush(l, 4)
print(l)

[1,2,3]
1
[2,3]
[2,3,4]

Last updated

Was this helpful?