tuple
- tuple์ list์ ๋น์ทํ์ง๋ง ํ๋ฒ ์ ์ธ๋๋ฉด ์์ ํ ์ ์๋ค.
- Tuple์ ์ผ๋ฐ์ ์ผ๋ก 2๊ฐ์์ 5๊ฐ ์ฌ์ด์ ์์๋ค์ ์ ์ฅํ ๋ ์ฌ์ฉ๋๋ฉฐ, ํน์ ๋ฐ์ดํฐ๋ฅผ ad hoc(์ฆ์์ ์ผ๋ก) ํ๊ฒ ํํํ๊ณ ์ถ์๋ ์ฌ์ฉ๋๋ค.
- List๋ ์์ ์ด ๊ฐ๋ฅํ๊ณ ์ฌ๋ฌ ์์ ์์๋ค์ ์ ์ฅํ ์ ์๋๋ก ํ๊ธฐ๋๋ฌธ์ tuple๋ณด๋ค ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ๋ ํฌ๋ค.
- ๋ ๋ง์ ๊ธฐ๋ฅ๊ณผ flexibility๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ด์ฉ ์ ์์ด ์ฉ๋์ด ์ปค์ง๋๊ฒ์ด๋ค.
- ํ์ง๋ง tuple์ ์ ํ์ ์ธ ๋งํผ ์ฉ๋์ด ๋ ์ ๋ค. ๊ทธ๋์ ์์ ์ด ํ์์๊ณ ๊ฐ๋จํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ํํํ ๋๋ tuple์ ์ฌ์ฉํ๋๊ฒ ํจ์ฌ ๋ ํจ๊ณผ์ ์ด๋ค.
set
- set์ list์ ์น์ฒ์ด๋ค
- list์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์ํ ํ์
์ ์์๋ฅผ ์ ์ฅํ ์ ์๋ค.
- list์ ๋ค๋ฅธ ์
- List์ ๋ค๋ฅด๊ฒ ์์๋ค์ด ์์๋๋ก ์ ์ฅ๋์ด ์์ง ์๋ค.
- ์ฆ ordering์ด ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก for ๋ฌธ์์ ์ฝ์ด๋ค์ผ๋ ์์๋ค์ด ์์๋๋ก ๋์ค๋๊ฒ ์๋๋ผ ๋ฌด์์ ์์๋๋ก ๋์จ๋ค.
- ์์๊ฐ ์์ผ๋ฏ๋ก indexing๋ ์๋ค. ๋ช๋ฒ์งธ ์์๋ฅผ ์ฝ์ด๋ค์ด๊ฑฐ๋ ํ ์ ์๋ค.
- ๋์ผํ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์์๊ฐ 1๊ฐ ์ด์ ์กด์ฌ ํ ์ ์๋ค.
- ์ฆ ์ค๋ณต๋ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
- ๋ง์ผ ์๋ก ์ ์ฅํ๋ ค๊ณ ํ๋ ์์์ ๋์ผํ ๊ฐ์ ์์๊ฐ ์กด์ฌํ๋ค๋ฉด ์๋ก์ด ์์๊ฐ ์ด ์ ์์๋ฅผ ์นํ(replace)ํ๋ค.
set ์์ฑํ๋ ๋ฒ
set1 = {1, 2, 3}
set2 = set([1, 2, 3])
- ์ค๊ดํธ ์ฌ์ฉํ๊ธฐ { }
- set( ) ํจ์ ์ฌ์ฉํ๊ธฐ
- set( ) ํจ์๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ list๋ฅผ parameter๋ก ์ ๋ฌํด์ผ ํ๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก set() ํจ์๋ฅผ ์ฌ์ฉํด์ set๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ๋ list๋ฅผ set๋ก ๋ณํํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
set1 = {1, 2, 3, 1}
print(set1)
> {1, 2, 3}
set2 = set([1, 2, 3, 1])
print(set2)
> {1, 2, 3}
- set์๋ ์ค๋ณต๋ ๊ฐ์ด ์ ์ฅ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ ์ฅํ ๊ฐ๋ง ๋จ๋๋ค.
set์์ ์๋ก์ด ์์ ์ถ๊ฐํ๊ธฐ
- set์ list์ ๋ฌ๋ฆฌ ์์๊ฐ ์์๋๋ก ์ถ๊ฐ๋์ง ์๋๋ค๊ณ ํ๋ค.
- ๊ทธ๋์ set์ append ๋์ add๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์ถ๊ฐํ๋ค.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)
> {1, 2, 3, 4}
set์์ ์๋ก์ด ์์ ์ญ์ ํ๊ธฐ
- set์์ ์์๋ฅผ ์ญ์ ํ ๋๋ remove๋ฅผ ์ฌ์ฉํ๋ค.
my_set = {1, 2, 3}
my_set.remove(3)
print(my_set)
> {1, 2}
Look up
- set์ ์์๊ฐ ๋ค์ด์๋์ง ํ์ธํ๋ ๊ฒ์ look up์ด๋ผ๊ณ ํ๋ค.
- set์์ look up์ ํ ๋๋
in
์ ์ฌ์ฉํ๋ค.
>>> set = {1, 2, 3, 4}
>>> if 1 in set:
print(1)
1
๊ต์งํฉ, ํฉ์งํฉ (Intersection, Union)
>>> set1 = {1, 2, 3, 4, 5}
>>> set2 = {2, 4, 5, 6, 7}
>>> print(set1 & set2)
{2, 4, 5}
>>> print(set1.intersection(set2))
{2, 4, 5}
- ์งํฉ์ & ํค์๋ ํน์ intersection() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
>>> set1 = {1, 2, 3, 4, 5}
>>> set2 = {2, 4, 5, 6, 7}
>>> print(set1 | set2)
{1, 2, 3, 4, 5, 6, 7}
>>> print(set1. union(set2))
{1, 2, 3, 4, 5, 6, 7}
- ํฉ์งํฉ์ | ํค์๋ ํน์ union ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋น set์ ๋ง๋ค๋ ค๋ฉด?
- empty set์ ์ํ literal syntax๋ ์๊ธฐ ๋๋ฌธ์ empty set์ ๋ง๋ค๋ ค๋ฉด ๊ทธ๋ฅ set() ํ๋ฉด ๋๋ค.
๋์
๋๋ฆฌ
- Dictionary ์์ element๋ฅผ ์ฝ์ด ๋ค์ด๋ ๋ฐฉ๋ฒ์ list์ ์ ์ฌํ๋ค.
- List์ ์ฐจ์ด์ ์ ์์์ index๋ฅผ ์ฌ์ฉํ๋๊ฒ์ด ์๋๋ผ key ๊ฐ์ ์ฌ์ฉํ๋ค๋ ์ ์ด๋ค.
hr_information = {"์ด๋ฆ":"์ตํ๋ฆผ", "๋์ด":23, "ํค":164}
hr_information["์ด๋ฆ"]
- key๋ ๋ฌธ์๋ฟ๋ง ์๋๋ผ ์ซ์๋ ๊ฐ๋ฅํ๋ค.
- key๊ฐ์ ์ค๋ณต๋ ์ ์๋ค.
- ๋ง์ฝ ์ค๋ณต๋๋ค๋ฉด ๋์ค์ ์จ key๊ฐ์ด ๊ธฐ์กด์ key๊ฐ์ ๋์ ํ๋ค.
Set ๊ณผ Dictionary ์ ์ฐจ์ด
- List์ ๋ค๋ฅด๊ฒ ์์๋ค์ด ์์๋๋ก ์ ์ฅ๋์ด ์์ง ์๋ค.
- ์ฆ ordering์ด ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก for ๋ฌธ์์ ์ฝ์ด๋ค์ผ๋ ์์๋ค์ด ์์๋๋ก ๋์ค๋๊ฒ ์๋๋ผ ๋ฌด์์ ์์๋๋ก ๋์จ๋ค.
- ์์๊ฐ ์์ผ๋ฏ๋ก indexing๋ ์๋ค. ๋ช๋ฒ์งธ ์์๋ฅผ ์ฝ์ด๋ค์ด๊ฑฐ๋ ํ ์ ์๋ค.
- ๋์ผํ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์์๊ฐ 1๊ฐ ์ด์ ์กด์ฌ ํ ์ ์๋ค.
์ฆ ์ค๋ณต๋ ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
- ๋ง์ผ ์๋ก ์ ์ฅํ๋ ค๊ณ ํ๋ ์์์ ๋์ผํ ๊ฐ์ ์์๊ฐ ์กด์ฌํ๋ค๋ฉด ์๋ก์ด ์์๊ฐ ์ด ์ ์์๋ฅผ ์นํ(replace)ํ๋ค.
List ์ Tuple ์ ์ฐจ์ด
- tuple์ list์ ๋น์ทํ์ง๋ง ํ๋ฒ ์ ์ธ๋๋ฉด ์์ ํ ์ ์๋ค.
- Tuple์ ์ผ๋ฐ์ ์ผ๋ก 2๊ฐ์์ 5๊ฐ ์ฌ์ด์ ์์๋ค์ ์ ์ฅํ ๋ ์ฌ์ฉ๋๋ฉฐ, ํน์ ๋ฐ์ดํฐ๋ฅผ ad hoc(์ฆ์์ ์ผ๋ก) ํ๊ฒ ํํํ๊ณ ์ถ์๋ ์ฌ์ฉ๋๋ค.
- List๋ ์์ ์ด ๊ฐ๋ฅํ๊ณ ์ฌ๋ฌ ์์ ์์๋ค์ ์ ์ฅํ ์ ์๋๋ก ํ๊ธฐ๋๋ฌธ์ tuple๋ณด๋ค ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ๋ ํฌ๋ค.
- ๋ ๋ง์ ๊ธฐ๋ฅ๊ณผ flexibility๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ด์ฉ ์ ์์ด ์ฉ๋์ด ์ปค์ง๋๊ฒ์ด๋ค.
- ํ์ง๋ง tuple์ ์ ํ์ ์ธ ๋งํผ ์ฉ๋์ด ๋ ์ ๋ค. ๊ทธ๋์ ์์ ์ด ํ์์๊ณ ๊ฐ๋จํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ํํํ ๋๋ tuple์ ์ฌ์ฉํ๋๊ฒ ํจ์ฌ ๋ ํจ๊ณผ์ ์ด๋ค.
for๋ฌธ
- for ๋ฌธ์์๋ ๋ฆฌ์คํธ๊ฐ ๊ฐ์ง๊ณ ์๋ ์์์ ์ ๋งํผ for ๋ฌธ์ ์ํด์๋ ์ฝ๋๋ฅผ ์คํํ๋ค.
- ์ด๊ฑธ iteration ์ด๋ผ๊ณ ํ๋ค. ๋ง์ผ ๋ฆฌ์คํธ๊ฐ 5๊ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด 5 iterations ์ด๋ผ๊ณ ํ๋ค.
for i in range(4):
print(i)
break
continue