๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/Python

(Python) strip, split, map, all ํ•จ์ˆ˜

by gomdeng 2024. 11. 27.

๐Ÿถ strip()

1. ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์—์„œ ์ง€์ •๋œ ๋ฌธ์ž๋“ค์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

2. ํ”ํžˆ ๊ณต๋ฐฑ์ด๋‚˜ ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ ์‚ฌ์šฉ

# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
text = "   ์—ฌ๊ธฐ ๊ณต๋ฐฑ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.   "
cleaned_text = text.strip()
print(cleaned_text)  # "์—ฌ๊ธฐ ๊ณต๋ฐฑ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค."

# ํŠน์ • ๋ฌธ์ž ์ œ๊ฑฐํ•˜๊ธฐ
text = "###์ด ๋ฌธ์žฅ์€ ํ•ด์‹œํƒœ๊ทธ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋๋‚ฉ๋‹ˆ๋‹ค###"
cleaned_text = text.strip("#")
print(cleaned_text)  # "์ด ๋ฌธ์žฅ์€ ํ•ด์‹œํƒœ๊ทธ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋๋‚ฉ๋‹ˆ๋‹ค"

# lstrip() : ์™ผ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ
left_stripped = "   ์—ฌ๊ธฐ ๊ณต๋ฐฑ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.".lstrip()
print(left_stripped)  # "์—ฌ๊ธฐ ๊ณต๋ฐฑ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค."

# rstrip() : ์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ
right_stripped = "์—ฌ๊ธฐ ๊ณต๋ฐฑ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.   ".rstrip()
print(right_stripped)  # "์—ฌ๊ธฐ ๊ณต๋ฐฑ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค."

 

๐Ÿถ split()

1. ๋ฌธ์ž์—ด์„ ์ง€์ •๋œ ๊ตฌ๋ถ„์ž์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜

2. ๊ธฐ๋ณธ์ ์œผ๋กœ split() ํ•จ์ˆ˜๋Š” ์•„๋ฌด ์ธ์ž๋„ ์ „๋‹ฌ๋ฐ›์ง€ ์•Š์„ ๋•Œ, ๊ณต๋ฐฑ(์ŠคํŽ˜์ด์Šค, ํƒญ, ์ค„๋ฐ”๊ฟˆ ๋“ฑ)์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ถ„๋ฆฌ

# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
text = "์ด ๋ฌธ์žฅ์„ ์—ฌ๋Ÿฌ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„์–ด ๋ด…์‹œ๋‹ค."
words = text.split()
print(words)  # ['์ด', '๋ฌธ์žฅ์„', '์—ฌ๋Ÿฌ', '๋‹จ์–ด๋กœ', '๋‚˜๋ˆ„์–ด', '๋ด…์‹œ๋‹ค.']

# ๊ตฌ๋ถ„์ž ์ง€์ •ํ•˜๊ธฐ
text = "์ด,๋ฌธ์žฅ,์„,์‰ผํ‘œ๋กœ,๋‚˜๋ˆ„์–ด,๋ด…์‹œ๋‹ค."
words = text.split(',')
print(words)  # ['์ด', '๋ฌธ์žฅ', '์„', '์‰ผํ‘œ๋กœ', '๋‚˜๋ˆ„์–ด', '๋ด…์‹œ๋‹ค.']

# ์ตœ๋Œ€ ๋ถ„๋ฆฌ ํšŸ์ˆ˜ ์ง€์ •ํ•˜๊ธฐ
# ์ตœ๋Œ€ ๋ถ„๋ฆฌ ํšŸ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋‘ ๋ฒˆ์งธ ์„ ํƒ์  ์ธ์ž๋ฅผ ์ œ๊ณต
text = "์ด ๋ฌธ์žฅ์„ ์—ฌ๋Ÿฌ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„์–ด ๋ด…์‹œ๋‹ค."
words = text.split(' ', 2)
print(words)  # ['์ด', '๋ฌธ์žฅ์„', '์—ฌ๋Ÿฌ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„์–ด ๋ด…์‹œ๋‹ค.']

# rsplit()
# ๋ฌธ์ž์—ด์„ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๋ถ„๋ฆฌ
text = "์ด ๋ฌธ์žฅ์„ ์—ฌ๋Ÿฌ ๋‹จ์–ด๋กœ ๋‚˜๋ˆ„์–ด ๋ด…์‹œ๋‹ค."
words = text.rsplit(' ', 2)
print(words)  # ['์ด ๋ฌธ์žฅ์„ ์—ฌ๋Ÿฌ', '๋‹จ์–ด๋กœ', '๋‚˜๋ˆ„์–ด ๋ด…์‹œ๋‹ค.']

 

๐Ÿถ map()

1. ์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋ฅผ ์‹œํ€€์Šค์˜ ๋ชจ๋“  ์š”์†Œ์— ์ ์šฉํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ map ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

2. map() ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ธ์ž๋ฅผ ๋ฐ›์Œ
 - ํ•จ์ˆ˜: ๊ฐ ์š”์†Œ์— ์ ์šฉํ•  ํ•จ์ˆ˜

 - ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(iterable): ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•  ์š”์†Œ๋“ค์˜ ์ง‘ํ•ฉ

3. map() ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๋Š” ์ดํ„ฐ๋ ˆ์ดํ„ฐ(iterator) ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜

 - ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ

 โ€ป ์ดํ„ฐ๋ ˆ์ดํ„ฐ(iterator)

  > ํŒŒ์ด์ฌ์˜ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์—์„œ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด

  > ์ดํ„ฐ๋ ˆ์ดํ„ฐ๋Š” __next__() ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, next() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

  > ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ ํ›„์—๋Š”, ๋” ์ด์ƒ ๋ฐ˜ํ™˜ํ•  ์š”์†Œ๊ฐ€ ์—†์„ ๋•Œ StopIteration ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด 

4. map() ํ•จ์ˆ˜์˜ ๊ณ ๋ ค์‚ฌํ•ญ

 - ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ: map() ํ•จ์ˆ˜๋Š” ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”

 - ํ•œ ๋ฒˆ์˜ ์‚ฌ์šฉ: map ๊ฐ์ฒด๋Š” ๊ฒฐ๊ณผ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์œผ๋กœ ์ €์žฅ ํ•„์š”

def square(x):
    return x * x

numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)

# ๊ฒฐ๊ณผ๋Š” map ๊ฐ์ฒด์ด๋ฉฐ ์ดํ„ฐ๋ ˆ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.
print(result)  # <map object at ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ>

# map ๊ฐ์ฒด๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฒฐ๊ณผ ํ™•์ธ
print(list(result))  # [1, 4, 9, 16, 25]

# ํ•œ ๋ฒˆ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด map ๊ฐ์ฒด๋Š” ๋น„์›Œ์ง‘๋‹ˆ๋‹ค.
print(list(result))  # []

# next() ์‚ฌ์šฉ์˜ˆ์‹œ
def square(x):
    return x ** 2

numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)

print(next(squared_numbers))  # ์ถœ๋ ฅ: 1
print(next(squared_numbers))  # ์ถœ๋ ฅ: 4
print(next(squared_numbers))  # ์ถœ๋ ฅ: 9
print(next(squared_numbers))  # ์ถœ๋ ฅ: 16
print(next(squared_numbers))  # ์ถœ๋ ฅ: 25
print(next(squared_numbers))  # StopIteration ์˜ˆ์™ธ ๋ฐœ์ƒ (๋ชจ๋“  ์š”์†Œ ์†Œ์ง„ ํ›„)

 

๐Ÿถ all()

1. ์ฃผ์–ด์ง„ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ(iterable) ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ฐธ(True)์ธ ๊ฒฝ์šฐ์—๋งŒ True๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

2. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ์š”์†Œ๊ฐ€ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ์œ ์šฉ

3. ํŠน์ง•

 - ์ฃผ์–ด์ง„ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด True๋ฅผ ๋ฐ˜ํ™˜

 - ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋งŒ๋‚˜๋Š” ์ฆ‰์‹œ ํ‰๊ฐ€๋ฅผ ์ค‘๋‹จ ( ๋ถˆํ•„์š”ํ•œ ๊ณ„์‚ฐ ๋ฐฉ์ง€ ๋ฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ)

# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
result = all([True, True, True])
print(result)  # ์ถœ๋ ฅ: True

result = all([True, False, True])
print(result)  # ์ถœ๋ ฅ: False

# ๋ชจ๋“  ์š”์†Œ ๊ฒ€์ฆ
numbers = [10, 20, 30, 40, 50]
result = all(x > 5 for x in numbers)
print(result)  # ์ถœ๋ ฅ: True

result = all(x > 20 for x in numbers)
print(result)  # ์ถœ๋ ฅ: False

# ์กฐ๊ฑด ํ•จ์ˆ˜๋ฅผ ์กฐํ•ฉํ•œ ๊ฒ€์ฆ
def is_positive(num):
    return num > 0

numbers = [1, 2, 3, 4, 5]
result = all(is_positive(x) for x in numbers)
print(result)  # ์ถœ๋ ฅ: True