์•Œ๊ณ ๋ฆฌ์ฆ˜๐Ÿฅš/๊ฐœ๋…

[ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ] 2. ํŠœํ”Œ, ์„ธํŠธ, ๋”•์…”๋„ˆ๋ฆฌ

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2023. 1. 7. 20:36
728x90

ํŠœํ”Œ๊ณผ ์„ธํŠธ ๊ทธ๋ฆฌ๊ณ  ๋”•์…”๋„ˆ๋ฆฌ

 

* ์ด ๊ธ€์€ ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ ์ฝ”์Šค์˜ ์ธ๊ณต์ง€๋Šฅ(AI) ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

1) ํŠœํ”Œ Tuple    : ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฆฌ์ŠคํŠธ

- ํ™œ์šฉ : ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ

            ์ฃผ๋กœ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜์–ด ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€

- ํŠน์ด์‚ฌํ•ญ : ๊ฐ’์˜ ์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ

- ๋ฆฌ์ŠคํŠธ ์—ฐ์‚ฐ(+, * ๋“ฑ๋“ฑ), ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ 

  • ์„ ์–ธ
()
  •  ๊ฐ’์ด ํ•˜๋‚˜์ธ ํŠœํ”Œ์˜ ์ •์˜
(element, )

 

 

2) ์„ธํŠธ Set    : ๊ฐ’์˜ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์ค‘๋ณต์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•

- ์ง‘ํ•ฉ ์—ฐ์‚ฐ ๋‚˜์˜ค๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ

  • ์„ ์–ธ
{}
or
set(๋ฆฌ์ŠคํŠธ)
  • add : ํ•˜๋‚˜์˜ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜
set.add(element)
  • update : ์—ฌ๋Ÿฌ๊ฐœ์˜ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜
set.update(list)
  • remove : ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ํ•จ์ˆ˜
set.remove(element)
  • discard : ์›์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ํ•จ์ˆ˜
set.discard(element)

    cf) remove vs discard

         remove : ์—†๋Š” element๋ฅผ ๋„ฃ์œผ๋ฉด KeyError ๋ฐœ์ƒ

         discard : ์—†๋Š” element๋ฅผ ๋„ฃ์–ด๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ

  • clear : ๋ชจ๋“  ์›์†Œ ์‚ญ์ œ
set.clear()

 

- ์ˆ˜ํ•™์—์„œ ํ™œ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ง‘ํ•ฉ ์—ฐ์‚ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • ํ•ฉ์ง‘ํ•ฉ  A ∪ B
Aset.union(Bset)
or
Aset | Bset
  • ๊ต์ง‘ํ•ฉ  A ∩ B
Aset.intersection(Bset)
or
Aset & Bset
  • ์ฐจ์ง‘ํ•ฉ  A - B
Aset.difference(Bset)
or
Aset - Bset

 

 

3) ๋”•์…”๋„ˆ๋ฆฌ Dictionary    : ๊ตฌ๋ถ„์„ ์œ„ํ•œ Key๋ฅผ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ์ €์žฅ

  • ์„ ์–ธ
{}
or
dict()
  • ์‚ฝ์ž…
dict[key]=value
  • Key ๋ชฉ๋ก ํ™•์ธ    ํŠœํ”Œํ˜•ํƒœ
dict.keys()  #datatype : tuple
  • ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ํ™•์ธ    ํŠœํ”Œํ˜•ํƒœ
dict.items()  #datatype : tuple

    cf) ๋ณดํ†ต for๋ฌธ ์•ˆ์—์„œ ์•„๋ž˜์˜ ํ˜•์‹์œผ๋กœ zip ํ•ด์„œ ๋งŽ์ด ์‚ฌ์šฉ

for k, v in dict.keys(), dict.items():

 

์˜ˆ์ œ) ์–ด๋–ค ์‚ฌ์šฉ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋งŽ์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์˜€์„๊นŒ

          ์„ค๊ณ„ : dictํ˜•ํƒœ ์ด์šฉ {์‚ฌ์šฉ์ž : ๋ช…๋ น์–ด ์ˆ˜}๋กœ ์ €์žฅ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# command_data : [[๋ช…๋ น, ์‚ฌ์šฉ์žid], [๋ช…๋ น, ์‚ฌ์šฉ์žid]] ํ˜•ํƒœ์˜ ์ด์ค‘ ๋ฐฐ์—ด๋กœ ๊ตฌ์„ฑ.
 
# dict์— {์‚ฌ์šฉ์žid : ๋ช…๋ นํšŸ์ˆ˜} ํ˜•ํƒœ๋กœ ์ €์žฅ
command_counter={}
for data in command_data:
    if(data[1in command_counter.keys()):
        command_counter[data[1]]+=1
    else:
        command_counter[data[1]]=1
 
# dict๋ฅผ ๋ช…๋ นํšŸ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
## list๋กœ ๋ณ€๊ฒฝํ•ด์„œ sorted ํ•จ์ˆ˜ ์ด์šฉ
command_list=[]
for key, value in command_counter.keys(), command_counter.values():
    command_list.append([key, value])
 
def getKey(keyvalue_list):
    return keyvalue_list[1##value๋ฅผ return
 
sorted_dict=sorted(command_list, key=getKey, reverse=True)
cs

 

728x90