๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

 

iterable ๊ฐ์ฒด: collections.Iterable์˜ ์ธ์Šคํ„ด์Šค๋กœ, ๋ฐ˜๋ณต๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋งํ•œ๋‹ค.

1. ๋ฌธ์ž์—ด

2. ๋ฆฌ์ŠคํŠธ

3. ๋”•์…”๋„ˆ๋ฆฌ

4. ํŠœํ”Œ

5. ์ง‘ํ•ฉ

6. range, enumerate, zip

 

1. ์‹œํ€€์Šค ์ž๋ฃŒํ˜• (iterable)์˜ ๊ณตํ†ต ํŠน์ง•

1) ์ธ๋ฑ์‹ฑ: seq[index]์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’ ๋ฐ˜ํ™˜ (์ง‘ํ•ฉ ์‚ฌ์šฉ ๋ถˆ๊ฐ€)
2) ์Šฌ๋ผ์ด์‹ฑ: seq[index1 : index2] seq ์›๋ž˜ ํƒ€์ž…์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (์ง‘ํ•ฉ, ๋”•์…”๋„ˆ๋ฆฌ ์‚ฌ์šฉ ๋ถˆ๊ฐ€)

nums = [1,2,3,4,5,6,7,8,9]
nums[-3:]
# [7, 8, 9]

3) count ๋ฉ”์„œ๋“œ: seq.count(d): ์‹œํ€€์Šค ์ž๋ฃŒ์˜ ์ž๋ฃŒd์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

4) for ๋ฐ˜๋ณต๋ฌธ: for item in seq

5) in ์—ฐ์‚ฐ์ž: ๋ฉค๋ฒ„ ํ™•์ธ, item in seq

 

 

2. ๋ฌธ์ž์—ด

- string method๋Š” ์‹ค์ œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ , ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

1) str.split(c): ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜

- ๋ฌธ์ž์—ด์„ c๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

- ๊ด„ํ˜ธ๋ฅผ ๋น„์šธ ์‹œ ๊ณต๋ฐฑ์ด" " ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

"์•ˆ๋…•ํ•˜์„ธ์š”".split()
# ["์•ˆ๋…•ํ•˜์„ธ์š”"]

"์•ˆ ๋…• ํ•˜ ์„ธ์š”".split()
# ['์•ˆ', '๋…•', 'ํ•˜', '์„ธ์š”']

"์•ˆ ๋…• ํ•˜ ์„ธ์š”".split(" ")
# ['์•ˆ', '๋…•', 'ํ•˜', '์„ธ์š”']

"hello".split("l")
#  ['he','','o']

 

2) str.join(list): ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜

๋ฆฌ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ์ด๋‹ค.

๋ฌธ์ž์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋“ค์„ ๊ตฌ๋ถ„์ž๋ฅผ ํ†ตํ•ด ํ•ฉ์ณ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜

li = ['์•ˆ', '๋…•', 'ํ•˜', '์„ธ', '์š”']
''.join(li)
# ์•ˆ๋…•ํ•˜์„ธ์š”

" ".join(['์•ˆ', '๋…•', 'ํ•˜', '์„ธ', '์š”'])
# ์•ˆ ๋…• ํ•˜ ์„ธ ์š”

a = ["1", "2", "3"]
"์•ˆ๋…•ํ•˜์„ธ์š”".join(a)
# 1์•ˆ๋…•ํ•˜์„ธ์š”2์•ˆ๋…•ํ•˜์„ธ์š”3

 

3) str.startswith('a'): ๋ถˆ๋ฆฌ์–ธ ๋ฐ˜ํ™˜

"supernman".startswith('s')
# True

 

4) str.lower(), str.upper(): ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜

"heLLo".upper()
# HELLO

"heLLo".lower()
# hello

 

5) str.replace("): ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜

"'go home!!! you,you,you!'".replace(",", "").replace("'", "").replace("!", "")
# go home youyouyou

 

6) str.replace("): ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜

์•ž ๋’ค๋กœ ๊ณต๋ฐฑ๋ฌธ์ž, ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ์ง€์›Œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

" ์•ˆ๋…•์š”\n".strip()
# ์•ˆ๋…•์š”

 

3. ๋ฆฌ์ŠคํŠธ

[50] +[50]
# [50,50]

nums = [1,2,3]
nums.insert(1,9)
# [1, 9, 2, 3]
# ํŠน์ • ์ธ๋ฐ์Šค์— ํ•œ ๊ฐœ์˜ ์ž๋ฃŒ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

nums = [1,2,3,1,1]
nums.remove(1)
# [2, 3, 1, 1]
# ํŠน์ • ์—˜๋ฆฌ๋ฉ˜ํŠธ๋ฅผ ์‚ญ์ œ, ์ค‘๋ณต์‹œ ๊ฐ€์žฅ ์•ž์˜ ์ธ๋ฑ์Šค์˜ ์—˜๋ฆฌ๋ฉ˜ํŠธ ํ•˜๋‚˜ ์‚ญ์ œ

nums = ['a', 'b', 'c']
nums.pop(2) 
# 'c'
# i๋ฒˆ์งธ์˜ ์›์†Œ๋ฅผ ์ œ๊ฑฐ ํ›„ ๊ทธ ์›์†Œ๋ฅผ ๋ฐ˜ํ™˜, ๊ด„ํ˜ธ ๋น„์šธ ์‹œ ๋งˆ์ง€๋ง‰ ์›์†Œ

 

list.sort() : ์›๋ณธ ๋ณ€ํ˜•

nums = [7,1,2]
nums.sort()
# [1,2,7]
# ์›๋ณธ ๋ณ€ํ˜•, ์˜ค๋ฆ„์ฐจ์ˆœ, ์‚ฌ์ „์ˆœ

 

sorted(list, key=ํ•จ์ˆ˜): ๋ฆฌ์ŠคํŠธ ๋ฐ˜ํ™˜

ํ•จ์ˆ˜์— ๋ฐ˜ํ™˜๋œ ๊ฐ’์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค.

nums = [5, -1, -4, 3, 100, 6] 
sorted(nums, key=abs)

# [-1, 3, -4, 5, 6, 100]

 

4. ๋”•์…”๋„ˆ๋ฆฌ

๋”•์…”๋„ˆ๋ฆฌ๋Š” ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ž๋ฃŒ ํƒ์ƒ‰์ด ์ƒ๋‹นํžˆ ๋น ๋ฅด๋‹ค.

dictionary['key']: key๋ฅผ ์•Œ๋ฉด value๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

1) dictionary.items()์„ ํ†ตํ•ด key์™€ value ๋ชจ๋‘ ์ ‘๊ทผ

dic = {'a': 123, 'b': 456, 'c': 789 }

for x in dic:
	print(x)
# a
# b
# c

for x in dic.items():
	print(x)
    
# ('a', 123)
# ('b', 456)
# ('c', 789)

for key, value in dic.items():
	print(key, value)
    
# a 123
# b 456
# c 789

 

2) dictionary์˜ key๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

- key ๊ฐ’์— ํŠœํ”Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฆฌ์ŠคํŠธ๋Š” ์•ˆ๋œ๋‹ค.

dic[cvs[1]] = value

- ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์‹ฑ์„ ํ†ตํ•ด ๋ฌธ์ž์—ด๋“ฑ์„ key ๊ฐ’์œผ๋กœ ์ค„ ์ˆ˜ ์žˆ๋‹ค. 

- ์ดํ›„์— ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ์ฒ˜์Œ์— ๋“ค์–ด๊ฐ„ ๊ฐ’์œผ๋กœ ๊ณ ์ •๋œ๋‹ค.

 

3) dictionary.keys() dictionary.values()

dic = {'a':'1','b':'2','c':'3'}

dic.keys()
# dict_keys(['a', 'b', 'c'])

dic.values()
# dict_keys(['1', '2', '3'])

๋ฐ˜ํ™˜ ๊ฐ’์ด <class 'dict_keys'>์ด๋ฏ€๋กœ list๋กœ ๋ฐ”์ธ๋”ฉ ํ•ด์ค˜์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

 

4) del

delํ•จ์ˆ˜๋กœ ๋”•์…”๋„ˆ๋ฆฌ์˜ ์›์†Œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

del person['age']

 

 

5. ํŠœํ”Œ

del person['age']

 

hello =('์•ˆ๋…•', 'hello', 'bonjour')
bye = ('์ž˜๊ฐ€', 'bye', 'mola')
 
hello[1]
# hello

hello + bye
# ('์•ˆ๋…•', 'hello', 'bonjour', '์ž˜๊ฐ€', 'bye', 'mola')

hello * 2
# ('์•ˆ๋…•', 'hello', 'bonjour', '์•ˆ๋…•', 'hello', 'bonjour')

 

6. ์ง‘ํ•ฉ

์ค‘๋ณต๊ณผ ์ˆœ์„œ๊ฐ€ ์—†๋‹ค.

nums = set([1,3,5,7])
nums = {1, 3, 5, 7}

# ์›๋ณธ ๋ณ€ํ˜• ๋ฉ”์„œ๋”๋“ค
nums.add(9)
nums.update([3, 15, 4])
nums.remove(7) # ํ•ด๋‹น ๊ฐ’์ด ์—†์œผ๋ฉด ์—๋Ÿฌ ๋„์–ด์คŒ
nums.discard(13)
union = set1 | set2
intersection = set1 & set2
diff = set1 - set2
xor = set1 ^ set2
my_set = {num for num in my_set if num % 2 != 0}

xor: A-B U B-A

 

7. range, enumeratem zip

1) range(include, exclude, step)

range๋Š” list๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

range(10, 20, 2)
# range(10, 20, 2)

list(range(10, 20, 2))
# [10, 12, 14, 16, 18]

 

2) enumerate(iterable)

๋ฐ˜๋ณต๋ฌธ ์‚ฌ์šฉ ์‹œ ๋ช‡ ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์ธ์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ
์ธ๋ฑ์Šค, ์›์†Œ๋ฅผ tuple๋กœ ๋ฐ˜ํ™˜

t = [1, 5, 7]
for p in enumerate(t):
	print(p)

# (0, 1)
# (1, 5)
# (2, 7)

 

3) zip(iterable1, iterable2)

๊ฐ iterable๊ฐ์ฒด๊ฐ€ ๋‹ด๊ณ  ์žˆ๋Š” ์›์†Œ๋ฅผ tuple์˜ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” zip๊ฐ์ฒด (iterator) ๋ฐ˜ํ™˜

numbers = [1,2,3]
letters = ['a', 'b', 'c']

for x,y in zip(numbers,letters):
	print(x,y)
    
# 1 a
# 2 b
# 3 c
๋ฐ˜์‘ํ˜•

'๐Ÿ Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ (JSON, CSV)  (0) 2022.04.01