์ฒ๋ฆฌํด์ผ ํ ๋ฐ์ดํฐ ์์ด ๋ง์์ง๋ฉด ํ์ผ์ ์ ์ฅํ ํ์ ํ์ํ ๊ฒฝ์ฐ ์ฌํ์ฉํด์ผ ํ๋ค. ๋ํ ๊ฐ๋ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก๋ฐ๋ก ์ฒ๋ฆฌํ๊ธฐ ๋ณด๋ค๋ ํ๋์ ๋ฐ์ดํฐ๋ก ๋ฌถ์ด์ ์ฒ๋ฆฌํ ์ ์์ด์ผ ํ๋ค. ๋ง์ ๋ฐ์ด์ฒ๋ฅผ ํ๋์ ๋ฐ์ดํฐ๋ก ๋ฌถ์ด์ ์ฒ๋ฆฌํ๋ ๋ค์ํ ์๋ฃํ์ด ์ ๊ณต๋๋ฉฐ ์ฌ๊ธฐ์๋ ํ์ด์ฌ์ ๋ฆฌ์คํธ ์๋ฃํ์ ํ์ฉ์ ์์๋ณธ๋ค.
ํ ์คํธ ํ์ผ์ ๋ด์ฉ์ ์ฝ์ด๋๋ฆฌ๋ ๋ฐฉ๋ฒ๊ณผ ํ์ด์ฌ์ ๋ด์ฅ๋์ด ์๋ ์ปฌ๋ ์ ์๋ฃํ ์ค์ ํ๋์ธ ๋ฆฌ์คํธ(list)๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณธ๋ค.
๋ฆฌ์คํธ(lists): ํ์ด์ฌ์์ ์ฌ์ฉํ ์ ์๋ ์์์ ๊ฐ๋ค์ ๋ชจ์์ ํ๋์ ๊ฐ์ผ๋ก ์ทจ๊ธํ๋ ์๋ฃํ
์ฌ์ฉ ํํ: ๋๊ดํธ ์ฌ์ฉ
even_numbers_list = [2, 4, 6, 8, 10]
todays_datatypes_list = ['list', 'tuple', 'dictionary']
ํน์ง: ์์์ ์๋ฃํ ๊ฐ๋ค์ ์์ด์ ํญ๋ชฉ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
mixed_list = [1, 'abs', [2.1, 4.5]]
์ธ๋ฑ์ค ๋๋ ์ฌ๋ผ์ด์ฑ์ ์ด์ฉํ์ฌ ๊ฐ๊ฐ์ ํญ๋ชฉ์ ๋๋ ์ฌ๋ฌ ๊ฐ์ ํญ๋ชฉ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ฉํ ์ ์๋ค. ์ฌ์ฉ๋ฒ์ ๋ฌธ์์ด์ ๊ฒฝ์ฐ์ ๋์ผ.
๋ฆฌ์คํธ๋ ์์ ๊ฐ๋ฅํ๋ค. ์ฆ, ๊ฐ๋ณ ์๋ฃํ์ด๋ค.
๋ฆฌ์คํธ์ ๊ด๋ จ๋์ด ๋ง์ด ์ฌ์ฉ๋๋ ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
append()
: ๊ธฐ์กด์ ๋ฆฌ์คํธ ๋์ ํญ๋ชฉ ์ถ๊ฐextend()
: ๋ ๊ฐ์ ๋ฆฌ์คํธ ์ด์ด๋ถ์ด๊ธฐinsert()
: ๊ธฐ์กด์ ๋ฆฌ์คํธ ์ค๊ฐ์ ํญ๋ชฉ ์ฝ์
pop()
, remove()
, del
: ํญ๋ชฉ ์ญ์ count()
: ๋ฆฌ์คํธ์ ํฌํจ๋ ํน์ ํญ๋ชฉ์ด ๋ช ๋ฒ ๋ํ๋๋์ง ์ธ์ด ์ค.index()
: ํน์ ํญ๋ชฉ์ ์ธ๋ฑ์ค๊ฐ ๋ช ๋ฒ์ธ์ง ํ์ธํด ์ค.data
๋๋ ํ ๋ฆฌ์ ์์นํ
scores_list.txt
ํ์ผ์ ์ ์ ์ฌ๋ ๋ช
์ ์ ์๋ฅผ ๋ด๊ณ ์๋ค.
txt
Name Score
player1 21.09
player2 20.32
player3 21.81
player4 22.97
player5 23.29
player6 22.09
player7 21.20
player8 22.16
๋ชฉํ: ์ ํ์ผ๋ก๋ถํฐ 1~3๋ฑ ์ ์์ ์ ์๋ฅผ ์๋์ ๊ฐ์ด ํ์ธํ๊ธฐ
txt
1๋ฑ 23.29
2๋ฑ 22.97
3๋ฑ 22.16
์ฐธ์กฐ: Head First Programming(ํ๋น๋ฏธ๋์ด) 4์ฅ
์ฆ, ์ฒซ์งธ ์ค์ ์ ์์ด๋ฆ(Name)๊ณผ ์ ์(Score)์ ํญ๋ชฉ์ด ํ์๋์ด ์์ผ๋ฉฐ ๋์งธ ์ค๋ถํฐ ์ ์์ด๋ฆ๊ณผ ์ ์๊ฐ ์์ฑ๋์ด ์๋ค.
์ ํ์ผ์ ๋ด์ฉ์ ์๋์ ๊ฐ์ด ํ์ด์ฌ ์ฝ๋๋ก ํ์ธํ ์ ์๋ค.
result_f = open("data/scores_list.txt") # ํ์ผ ์ด๊ธฐ
for line in result_f: # ๊ฐ ์ค ๋ด์ฉ ์ถ๋ ฅํ๊ธฐ
print(line)
result_f.close() # ํ์ผ ๋ซ๊ธฐ
์ค ์ฌ์ด์ ์๋ก์ด ์ค์ด ํฌํจ๋ ์ด์ ๋ ํ์ผ์ ์์ฑํ๋ฉด์ ์ค๋ฐ๊พธ๊ธฐ๋ฅผ ํ ๋ ์ฌ์ฉํ๋ ์ํฐ์ ์ํด ์ค๋ฐ๊พธ๊ธฐ ๊ธฐํธ(\n
)๊ฐ
๊ฐ ์ค์ ๋งจ ๋์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ์ค๋ฐ๊พธ๊ธฐ๋ฅผ ํ ๋ฒ ๋ ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ strip
๋ฉ์๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
result_f = open("data/scores_list.txt")
for line in result_f:
print(line.strip()) # strip ๋ฉ์๋ ํ์ฉํ๊ธฐ
result_f.close()
strip
๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ค ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋ ๊ฒ์ ์ข์ ๋ฒ๋ฆ์ด๋ค.strip
๋ฉ์๋๋ฅผ ์ฌ์ฉํด๋ ๋๊ณ ๊ทธ๋ ์ง ์์๋ ๋๋ค.์ด์ 1๋ฑ ์ ์๋ฅผ ํ์ธํ๊ณ ์ ํ๋ค. ์ด๋ ์ด์ ์ ๋ฐฐ์ด ์์ธ์ฒ๋ฆฌ ๊ธฐ์ ์ ํ์ฉํด๋ณด์.
์๋ ์์ ๋ ์๋ ํ์ผ์ open
ํจ์๋ก ์ด๋ ค๊ณ ํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ด๋ค.
๋จผ์ ์๋ ํ์ผ์ ์ด๋ ค๊ณ ํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํจ์ ํ์ธํ์.
file = open('data/no_file.txt')
์ด๋ฐ ๊ฒฝ์ฐ์๋ ์ด๊ณ ์ ํ๋ ํ์ผ์ด ์กด์ฌํ์ง ์๋๋ค๋ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ด ๋จ์ํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด์ ์คํ์ด ๋ฉ์ถ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ์ ์ตํ๋ค.
try:
file = open('data/no_file.txt')
except:
print("์ด๊ณ ์ ํ๋ ํ์ผ์ด ์กด์ฌํ์ง ์์ต๋๋ค.")
์์ ํ์ผ ๋ด์ฉ์ ํ์ธํด ๋ณด์๋ฏ ๊ฐ ์ค๋ง๋ค ์ ์์ด๋ฆ๊ณผ ์ ์๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด๋ก ๋๊ณ ๊ฐ ์ค์ ์ ํ ์๋ค.
๋ฐ๋ผ์ ์๋์ ๊ฐ์ด split
๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ๊ฐ ์ค์ ์ชผ๊ฐ์ด ๋ ๋ฒ์งธ ํญ๋ชฉ์ ํ์ธํ ์ ์๋ค.
split
๋ฉ์๋์ ๊ธฐ๋ฅ์ ํ์ธํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด Name Score
๋ผ๋ ๋ฌธ์์ด์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ์ชผ๊ฐ๋ฉด ๊ธธ์ด๊ฐ ๋ ๊ฐ์ ๋จ์ด๋ก ๊ตฌ์ฑ๋ ๋ฆฌ์คํธ๊ฐ ์์ฑ๋๋ค.
'Name Score'.split()
ํ์ผ์ ๊ฐ ์ค์ด ๋์ผํ ๋ชจ์์ ๊ฐ๊ณ ์๋ค๋ ์ ์ ์ฐฉ์ํ์ฌ ์๋์ ๊ฐ์ด ๊ฐ์ค์ ๋ด์ฉ ์ค์์ ์ ์์ ํด๋นํ๋ ๋ถ๋ถ์ ์๋์ ๊ฐ์ด ํ์ธํ ์ ์๋ค.
์ฃผ์: ๋ฆฌ์คํธ์ ์์ธ๋ ๋ฌธ์์ด์ ๊ฒฝ์ฐ์ฒ๋ผ 0๋ถํฐ ์์ํ๋ค. ๋ฐ๋ผ์ ๋ฆฌ์คํธ์ ๋์งธ ํญ๋ชฉ์ ์์ธ์ 1์ธ๋ค.
result_f = open("data/scores_list.txt")
for line in result_f:
record = line.split()
print(record[1])
result_f.close()
๊ทธ๋ฐ๋ฐ ์ฒซ์งธ ์ค ๋ด์ฉ์ ์ ์๋ฅผ ๋น๊ตํ๋ ๋ฐ์ ํ์์๋ค. ๋ฐ๋ผ์ ๋ฌด์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ก ํ์.
ํน์ ์ค์ ๋ฌด์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ธฐ์ ์ด ์์ง๋ง ์ฌ๊ธฐ์๋ try ... except ...
๋ช
๋ น๋ฌธ์ ์ด์ฉํ ์์ธ์ฒ๋ฆฌ ๊ธฐ์ ์ ํ์ฉํ๋ค.
์ฃผ์: ์ฌ๊ธฐ์ ์์ธ์ฒ๋ฆฌ ๊ธฐ์ ์ ์ด์ฉํ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
split
๋ฉ์๋๋ก ์ชผ๊ฐ์ง ๊ฐ๋ค์ ๋ชจ๋ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ๋๋ค.float
ํจ์๋ฅผ ์ ์ฉํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.float
ํจ์๋ฅผ ์คํํ ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ฌด์ํ๊ณ ๋ค์ ์ค๋ก ๋์ด๊ฐ๋ ์์ผ๋ก ์ค๋ฅ์ฒ๋ฆฌ๋ฅผ ํ์๋ค.result_f = open("data/scores_list.txt")
highest_score = 0 # 1๋ฑ ์ ์ ์ ์ฅ
for line in result_f:
record = line.split()
try: # ์ฒซ์ค ์ ์ธ ์ฉ๋
score = float(record[1])
except:
continue
if highest_score < score: # 1๋ฑ ์ ์ ๊ฐฑ์ ๊ฒฝ์ฐ ํ์ธ
highest_score = score
else:
continue
result_f.close()
print("1๋ฑ ์ ์๋", highest_score, "์
๋๋ค.")
2๋ฑ ์ ์๊น์ง ํ์ธํ๋ ค๋ฉด 2๋ฑ ์ ์๋ฅผ ๊ธฐ์ตํ ๋ณ์๊ฐ ํ๋ ๋ ํ์ํ๋ฉฐ ํ์ธ๋ ์ ์๊ฐ ๊ธฐ์กด์ 1๋ฑ ์ ์๋ณด๋ค ํฐ์ง, 2๋ฑ ์ ์๋ณด๋ค ํฐ์ง ์ฌ๋ถ์ ๋ฐ๋ผ 1, 2๋ฑ ์ ์๋ฅผ ๊ธฐ์ตํ๋ ๋ณ์์ ๊ฐ๋ค์ ์ ๋ฐ์ดํธ ํด์ผ ํ๋ค.
result_f = open("data/scores_list.txt")
highest_score = 0
second_highest_score = 0 # 2๋ฑ ์ ์ ์ ์ฅ
for line in result_f:
record = line.split()
try:
score = float(record[1])
except:
continue
if highest_score < score: # 1, 2๋ฑ ์ ์ ๊ฐฑ์ ๊ฒฝ์ฐ ํ์ธ
second_highest_score = highest_score
highest_score = score
elif second_highest_score < score: # 2๋ฑ ์ ์ ๊ฐฑ์ ๊ฒฝ์ฐ ํ์ธ
second_highest_score = score
else:
continue
result_f.close()
print("1๋ฑ ์ ์๋", highest_score, "์
๋๋ค.")
print("2๋ฑ ์ ์๋", second_highest_score, "์
๋๋ค.")
์ด์ 3๋ฑ ์ ์๊น์ง ํ์ธํ๋ ค๋ฉด ์ฝ๋๋ฅผ ๋ ๋ง์ด ์์ ํด์ผ ํ๋ฉฐ, ๋ ๋ง์ ๋ณ์์ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ผ ํ๋ค.
result_f = open("data/scores_list.txt")
highest_score = 0
second_highest_score = 0
third_highest_score = 0 # 3๋ฑ ์ ์ ์ ์ฅ
for line in result_f:
record = line.split()
try:
score = float(record[1])
except:
continue
if highest_score < score: # 1, 2, 3๋ฑ ์ ์ ๊ฐฑ์ ํ์ธ
third_highest_score = second_highest_score
second_highest_score = highest_score
highest_score = score
elif second_highest_score < score: # 2, 3๋ฑ ์ ์ ๊ฐฑ์ ํ์ธ
third_highest_score = second_highest_score
second_highest_score = score
elif third_highest_score < score: # 3๋ฑ ์ ์ ๊ฐฑ์ ํ์ธ
third_highest_score = score
else:
continue
result_f.close()
print("1๋ฑ ์ ์๋", highest_score, "์
๋๋ค.")
print("2๋ฑ ์ ์๋", second_highest_score, "์
๋๋ค.")
print("3๋ฑ ์ ์๋", third_highest_score, "์
๋๋ค.")
์์ 1๋ฑ๊น์ง, 2๋ฑ๊น์ง, 3๋ฑ๊น์ง ์ ์๋ฅผ ํ์ธํ๋ ์ฝ๋๋ ๊ฐ์ ๋ค๋ฅด๋ฉฐ, ์ ์ฒ ๊ธธ์ด์ง๊ณ ๋ณต์กํด์ก๋ค. ์ฝ๋๋ฅผ ์ด๋ฐ ์์ผ๋ก ๊ตฌํํ๋ฉด ์๋๋ค.
๋ฌด์๋ณด๋ค๋ ์ํ๋ ๋ฑ์์ ๋ฐ๋ผ ์ฝ๋ ์์ฒด๊ฐ ์์ ๋์ด์ผ ํ๋ ๋ฐฉ์์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฉด ์ ๋ ์๋๋ค. ๊ทธ๋ผ ์ด๋ป๊ฒ ํ ๊น?
์์ ์ฝ๋์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ์ ์ ๊ฐ ์ ์์ ์ ์๋ฅผ ๋ฐ๋ผ๋ฐ๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ ์ ์์ ์ ์๋ฅผ ๋ชจ์์ ํ๊บผ๋ฒ์ ์ฒ๋ฆฌํ๋ ๊ธฐ์ ์ด ์๊ตฌ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฆฌ์คํธ ์๋ฃํ์ ํ์ฉํ์ฌ ์ํ๋ ๋ฑ์์ ์ ์์ ์์ ์๊ด์์ด ๋์ผํ ์ฝ๋๋ก ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๊ณ ์ ํ๋ค.
๋ช ๋ฑ ์ ์๋ฅผ ์์๋ด์ผ ํ๋๊ฐ์ ์๊ด์์ด ๋ชจ๋ ์ง๋ฌธ์ ๋ต์ ํ๋ ํ๋์ ํ๋ก๊ทธ๋จ์ ๋ฆฌ์คํธ๋ฅผ ํ์ฉํ์ฌ ๊ตฌํํ๊ณ ์ ํ๋ฉฐ, ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ง๋ฌธ: ๊ทธ๋ ๋ค๋ฉด ์ ์๋ง ๋ฝ์์ ๋ชจ์ ๋ค์์ ์ ์๋ค์ ์์๋๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ด ์์ผ๋ฉด ์ข์ง ์์๊น?
๋ต: ๋งค์ฐ ๊ทธ๋ ๋ค.
๋ฐฉ๋ฒ: split()
, append()
๋ฉ์๋๋ฅผ ์๋์ ๊ฐ์ด for
๋ฌธ๊ณผ ํจ๊ป ํ์ฉํ๋ฉด ๋จ.
result_f = open("data/scores_list.txt")
score_list = [] # ์ ์ ์ ์ฅ ๋ฆฌ์คํธ ์์ฑ
for line in result_f:
(name, score) = line.split() # ๊ฐ ์ค์ ๋ ๋จ์ด์ ๋ฆฌ์คํธ๋ก ์ชผ๊ฐ๊ธฐ
try:
score_list.append(float(score)) # ์ฒซ์งธ ์ค ์ ์ธ. ์ซ์๋ง scores ๋ฆฌ์คํธ์ ์ถ๊ฐ
except:
continue
result_f.close()
score_list.sort() # ๋ฆฌ์คํธ๋ฅผ ํฌ๊ธฐ์์ผ๋ก ์ ๋ ฌ(์ค๋ฆ์ฐจ์)
score_list.reverse() # ๋ฆฌ์คํธ์ ํญ๋ชฉ๋ค์ ์์ ๋ค์ง๊ธฐ
print("The top scores were:")
print(score_list[0]) # 0๋ฒ ์์ธ๊ฐ = 1๋ฑ ์ ์
print(score_list[1]) # 1๋ฒ ์์ธ๊ฐ = 2๋ฑ ์ ์
print(score_list[2]) # 2๋ฒ ์์ธ๊ฐ = 3๋ฑ ์ ์
์ ์ฝ๋์ 4๋ฒ ์ค์ ์ฌ์ฉ๋ line.split()
์ด ์ ์์ด๋ฆ๊ณผ ์ ์๋ฅผ ์ชผ๊ฐ๋ ๊ณผ์ ์ด๋ค.
์๋ ์ฝ๋๋ ์ ์ฝ๋๋ฅผ ์ข ๋ ์ธ๋ จ๋๊ฒ ๊ตฌํํ ๊ฒ์ด๋ค.
์๋ ์ฝ๋์ 4๋ฒ ์ค ๋ด์ฉ์ split()
๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ ์ ์ด๋ฆ๊ณผ ์ ์๋ก ์ชผ๊ฐ์ง
๊ฐ๊ฐ์ ๊ฐ์ ๊ฐ๋ ๋ณ์๋ฅผ ๋์์ ์ ์ธํ๊ณ ์๋ค.
(์ฃผ์: split()
์ ๊ฒฐ๊ณผ๋ก ๊ธธ์ด๊ฐ 2์ธ ๋ฆฌ์คํธ๋ฅผ ์ป๋๋ค๋ ๊ฒ์ ๋ฏธ๋ฆฌ ์์ํ์์์ ์ฃผ์ํ๋ผ.)
(name, score) = line.split()
์์ ๊ฐ์ด ํ๋ฉด ๋ค์ ์ฒ๋ผ ํ ๊ฒ๊ณผ ๋์ผํ ์ผ์ ํ๊ฒ ๋๋ค.
name = line.split()[0]
score = line.split()[1]
์๋ ๋ ์ค์ ์ฝ๋๋ ๋ฆฌ์คํธ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
score_list.sort()
score_list.reverse()
์ ๋ ์ค์ ์ฝ๋๋ฅผ ์๋์ ๊ฐ์ด ํ ์ค๋ก ๊ตฌํํ ์ ์๋ค.
score_list.sort(reverse=True)
result_f = open("data/scores_list.txt")
score_list = []
for line in result_f:
(name, score) = line.split()
try:
score_list.append(float(score))
except:
continue
result_f.close()
score_list.sort(reverse=True) # ๋ฆฌ์คํธ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
print("The top scores were:")
print(score_list[0])
print(score_list[1])
print(score_list[2])
์์ ์ดํด๋ณธ ์ฝ๋๋ฅผ ํจ์๋ก ์ถ์ํํ๋ฉด ์ํ๋ ๋ฑ์์ ์ ์๋ฅผ ํจ์ํธ์ถ๋ก ๊ฐ๋จํ๊ฒ ํ์ธํ ์ ์๋ค.
์ฃผ์: ํจ์์ ์ ์ํ ๊ธฐ์ด์ ์ธ ํ์ฉ๋ฒ์ ๋ํ ์์ธํ ์ค๋ช ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ๋ค.
def ranking(rank): # ์ํ๋ ๋ฑ์๋ฅผ ์ธ์๋ก ์ฌ์ฉ
result_f = open("data/scores_list.txt")
score_list = []
for line in result_f:
(name, score) = line.split()
try:
score_list.append(float(score))
except:
continue
result_f.close()
score_list.sort(reverse=True)
return score_list[rank-1] # ์ํ๋ ๋ฑ์์ ์ ์ ๋ฆฌํด
์ด์ 1, 2, 3๋ฑ ์ ์๋ฅผ ๊ฐ๋ณ๊ฒ ํ์ธ ํ ์ ์๋ค.
print(ranking(1), ranking(2), ranking(3))
empty_list = []
๋น ๋ฆฌ์คํธ์ ๊ธธ์ด๋ 0์ด๋ค.
len(empty_list)
๋น ๋ฆฌ์คํธ๋ ์๋ฌด ๊ฒ๋ ํฌํจํ์ง ์๋๋ค. ๋ฐ๋ผ์ 0๋ฒ ์ธ๋ฑ์ค ๊ฐ๋ ์๋ค.
empty_list[0]
๋น ๋ฆฌ์คํธ๋ฅผ ์๋์ ๊ฐ์ด ์์ฑํ ์๋ ์๋ค.
empty_list = list()
๋ฐ๋ฉด์ ์๋ ๋ฆฌ์คํธ๋ ๋น ๋ฆฌ์คํธ๊ฐ ์๋๋ค.
a_singleton = [[]]
์ ๋ฆฌ์คํธ๋ ๋น ๋ฆฌ์คํธ๋ฅผ ํฌํจํ ๋ฆฌ์คํธ์ด๋ค. ๋ฐ๋ผ์ ๊ธธ์ด๊ฐ 1์ด๋ค.
len(a_singleton)
ํฌํจ๋ ์ ์ผํ ํญ๋ชฉ์ ๋น ๋ฆฌ์คํธ์ด๋ค.
a_singleton[0]
๋ฆฌ์คํธ๋ ์ค์ฒฉ์ ํ์ฉํ๋ค. ์๋ ๋ฆฌ์คํธ๋ 3์ค ๋ฆฌ์คํธ์ด๋ค.
a_nested_list = [1, 2, [3, 4], [[5, 6, 7], 8]]
[3, 4]
์ด๋ค.[5, 6, 7]
๊ณผ ์ ์ 8๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ [[5, 6, 7], 8]
์ด๋ค.์ง๋ฌธ: ์ ๋ฆฌ์คํธ์์ 2๋ฅผ ์ธ๋ฑ์ค๋ก ์ป๋ ๋ฐฉ๋ฒ์?
๊ฒฌ๋ณธ๋ต์:
a_nested_list[1]
์ง๋ฌธ: [3, 4]
๋ฅผ ์ธ๋ฑ์ค๋ก ์ป๋ ๋ฐฉ๋ฒ์?
๊ฒฌ๋ณธ๋ต์:
a_nested_list[2]
์ง๋ฌธ: 3
์ ์ธ๋ฑ์ค๋ก ์ป๋ ๋ฐฉ๋ฒ์?
๊ฒฌ๋ณธ๋ต์: ์ธ๋ฑ์ค๋ฅผ ์ฐ์ํด์ ์ ์ฉํ๋ค.
a_nested_list[2][0]
์ง๋ฌธ: [5, 6, 7]
์ ์ธ๋ฑ์ค๋ก ์ป๋ ๋ฐฉ๋ฒ์?
๊ฒฌ๋ณธ๋ต์: ์ญ์ ์ธ๋ฑ์ค๋ฅผ ์ฐ์ํด์ ์ ์ฉํ๋ค.
a_nested_list[3][0]
์ง๋ฌธ: 7
์ ์ธ๋ฑ์ค๋ก ์ป๋ ๋ฐฉ๋ฒ์?
๊ฒฌ๋ณธ๋ต์: ์ญ์ ์ธ๋ฑ์ค๋ฅผ ์ฐ์ํด์ ์ ์ฉํ๋ค.
a_nested_list[3][0][2]
์๋ ์์ ๋ ์ฌ๋ผ์ด์ฑ๊ณผ ์ธ๋ฑ์ฑ์ ์๋๋ฐฉ์์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ ๋ณด์ฌ์ค๋ค.
๋๋ฌผ๋ค์ ๋ฆฌ์คํธ animals
๋ฅผ ์๋์ ๊ฐ์ด ์ ์ํ์.
animals = ['dog', 'cat', 'pig']
์ด์ ์ธ๋ฑ์ฑ์ ์ฌ์ฉํ์ฌ 1๋ฒ ์์ธ๊ฐ์ผ๋ก cat
๋์ ์ ์๋ก์ด ๋ฆฌ์คํธ์ธ ['tiger', 'lion', 'rabbit']
๋ฅผ ์ง์ ํด๋ณด์.
animals[1] = ['tiger', 'lion', 'rabbit']
๊ทธ๋ฌ๋ฉด animals
๋ ์ด ๊ฒฝ์ฐ 2์ค ๋ฆฌ์คํธ๊ฐ ๋๋ค.
animals
๋ฐ๋ฉด์ ์๋์ ๊ฐ์ด ์ฌ๋ผ์ด์ฑ์ ์ฌ์ฉํ๋ฉด ์ ํ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ค.
animals = ['dog', 'cat', 'pig']
animals[1:2] = ['tiger', 'lion', 'rabbit']
์ฌ๋ผ์ด์ฑ์ ํ์ฉํ๋ฉด 2์ค ๋ฆฌ์คํธ ๋์ ์ ํ์ฅ๋ ๋ฆฌ์คํธ๋ฅผ ์ป๊ฒ ๋๋ค.
animals
์ฌ๋ผ์ด์ฑ์ ํ์ฉํ์ฌ ํน์ ํญ๋ชฉ์ ์ญ์ ํ ์๋ ์๋ค.
์๋ฅผ ๋ค์ด, 2๋ฒ ~ 3๋ฒ ์์ธ๊ฐ์ธ tiger
์ lion
์ ์ญ์ ํ๋ ค๋ฉด ์๋์ ๊ฐ์ด ํ ์ ์๋ค.
animals[2:4] = []
animals
animals = ['dog', 'cat', 'pig']
๋ฌธ์์ด์ ํฌํจ๋ ๋ฌธ์๋ค์ ์์๊ฐ ์ค์ํ๋ฏ ๋ฆฌ์คํธ์ ํฌํจ๋ ํญ๋ชฉ๋ค์ ์์๋ ์ ๋์ ์ผ๋ก ์ค์ํ๋ค. ๋ฌธ์์ด๊ณผ๋ ๋ฌ๋ฆฌ ๋ฆฌ์คํธ๋ ์์ ์ด ๊ฐ๋ฅํ๋ค.
์๋ฅผ ๋ค์ด, append()
๋ฉ์๋๋ ๋ฆฌ์คํธ์ ๋์ ํญ๋ชฉ์ ํ๋ ์ถ๊ฐํ๋ค.
animals.append('coq')
animals
๋์์ ์ฌ๋ฌ ๊ฐ์ ํญ๋ชฉ์ ์ถ๊ฐํ๊ณ ์ ํ ๋๋ append()
๋ฉ์๋๋ฅผ ์๋์ฒ๋ผ ์ด์ฉํ๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ฉด ์๋๋ค.
animals.append(['eagle', 'bear'])
animals
์์์๋ ์๋์ ๋ฆฌ์คํธ์ ๋ค๋ฅธ ๋ฆฌ์คํธ ํ๋๋ฅผ ๋ง์ง๋ง ํญ๋ชฉ์ผ๋ก ์ถ๊ฐํ ๊ฒ์ด๋ค.
๊ทธ๊ฒ ์๋๋ผ eagle
๊ณผ bear
๋ ๊ฐ์ ํญ๋ชฉ์ ์๋์ ๋ฆฌ์คํธ์ ์ถ๊ฐํ๊ณ ์ ํ๋ค๋ฉด append()
๋ฉ์๋๋ฅผ ๋ ๋ฒ ์ ์ฉํ๊ฑฐ๋
์๋๋ฉด extend()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋จผ์ ์์ ์ถ๊ฐํ ํญ๋ชฉ์ ์ ๊ฑฐํ์.
animals.remove(['eagle', 'bear'])
animals
extend()
๋ฉ์๋์ ํ์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
animals.extend(['eagle', 'bear'])
animals
๋ ๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ๋ง์ ๊ธฐํธ๋ฅผ ์ด์ฉํ์ฌ ํ์ฅํ ์๋ ์๋ค. ํ์ง๋ง ์๋์ ๋ฆฌ์คํธ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ ์๋๋ผ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค.
ํญ๋ชฉ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ ์ด์ธ์๋ ํญ๋ชฉ ์์ฒด๋ฅผ ๋ณ๊ฒฝํ ์๋ ์๋ค.
cat
๋ฅผ cow
์ผ๋ก ๋ณ๊ฒฝํด๋ณด์.
๋ฐฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์ธ๋ฑ์ฑ์ ์ฌ์ฉํ๋ค.
animals[1] = 'cow'
animals
๋ฆฌ์คํธ์ ํฌํจ๋ ํญ๋ชฉ์ ์ธ๋ฑ์ค๋ฅผ ์๊ณ ์ ํ๋ค๋ฉด index()
๋ฉ์๋๋ฅผ ์ด์ฉํ๋ค.
animals.index('pig')
์ฃผ์: ๋ง์ฝ์ 'pig'
๊ฐ ์ฌ๋ฌ ๋ฒ ํฌํจ๋์ด ์์ผ๋ฉด index()
๋ฉ์๋๋ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌํดํ๋ค.
animals.append('pig')
animals
animals.index('pig')
pop()
๋ฉ์๋๋ ์ธ์๊ฐ ์์ ๊ฒฝ์ฐ ๋งจ ๋์ ์์นํ ํญ๋ชฉ์ ์ญ์ ํ๋ฉฐ, ์ธ๋ฑ์ค๋ฅผ ์ธ์๋ก ์ฌ์ฉํ๋ฉด ํด๋น ํญ๋ชฉ์ ์ญ์ ํ๋ค.
animals.pop()
animals.pop(2)
animals
์ ํ ๋น๋ ๋ฆฌ์คํธ๊ฐ ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์๋์ง ํ์ธํด์ผ ํ๋ค.
animals
ํน์ ์ธ๋ฑ์ค ์์น์ ํญ๋ชฉ์ ์ถ๊ฐํ ๊ฒฝ์ฐ insert()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
animals.insert(5, 'leopard')
animals
์ฃผ์: ๊ฐ ๋ฉ์๋์ ๋ฆฌํด๊ฐ์ ์ฃผ์ํด์ผ ํ๋ค.
pop()
: ๋ฆฌ์คํธ์์ ์ญ์ ํ ํญ๋ชฉ์ ๋ฆฌํดํ๋ค.append()
, remove()
, insert()
๋ฑ์ ๊ธฐ์กด์ ๋ฆฌ์คํธ๋ฅผ ๋ณ๊ฒฝํ์ง๋ง ๋ฆฌํด๊ฐ์ None
, ์ฆ ์๋ฌด ๊ฒ๋ ๋ฆฌํดํ์ง ์๋๋ค. ์ฃผ์: pop()
๋ฉ์๋๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์๋๋ฉด ๋งจ ๋ ํญ๋ชฉ๋ง ์ญ์ ํ๋ค. ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ชจ๋ฅผ ๊ฒฝ์ฐ์ ํน์ ํญ๋ชฉ์ ์ญ์ ํ๊ณ ์ ํ๋ค๋ฉด remove()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
animals.insert(2, 'hamster')
print(animals)
removed_pet = animals.remove('hamster')
print(animals)
์ฃผ์:
ํน์ ํญ๋ชฉ์ด ์ฌ๋ฌ ๋ฒ ํฌํจ๋์ด ์์ ๊ฒฝ์ฐ remove()
๋ฉ์๋๋ ๋งจ ์ผ์ชฝ์ ์์นํ ํญ๋ชฉ ํ๋๋ง ์ญ์ ํ๋ค.
๋ ์ญ์ ํ๋ ค๋ฉด ๋ ์ฌ์ฉํด์ผ ํ๋ค.
remove()
, index()
๋ฑ์ ์ญ์ ๋๋ ์ฐพ๊ณ ์ ํ๋ ํญ๋ชฉ์ด ์์ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค.
animals.remove('hamster')
animals
์ด์ธ์ del
ํจ์๋ฅผ ์ด์ฉํ์ฌ ๋ฆฌ์คํธ์ ์ผ๋ถ ๋๋ ์ ์ฒด๋ฅผ ์ญ์ ํ ์ ์๋ค.
์ฃผ์: del
ํจ์(๋ฉ์๋ ์๋)๋ ๋งค์ฐ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋ค. ์๋ชปํ๋ฉด ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ญ์ ์ํฌ ์ ์๋ค.
del animals[-1]
animals
animals_sample = ['dog']
del animals_sample
animals_sample
reverse()
๋ฉ์๋๋ ๋ฆฌ์คํธ์ ์์๋ฅผ ๋ค์ง๋๋ค.
print('๊ธฐ์กด ๋๋ฌผ ๋ฆฌ์คํธ: ', animals)
animals.reverse()
print('๋ค์ง์ด์ง ๋๋ฌผ ๋ฆฌ์คํธ: ', animals)
sort()
๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ๋ฆฌ์คํธ์ ํญ๋ชฉ๋ค์ ์ ๋ ฌํ ์ ์๋ค.
print('๊ธฐ์กด ๋๋ฌผ ๋ฆฌ์คํธ', animals)
animals.sort()
print('์ ๋ ฌ๋ ๋๋ฌผ ๋ฆฌ์คํธ', animals)
์ฃผ์:
sort()
์ reverse()
๋ฉ์๋๋ ์๋์ ๋ฆฌ์คํธ ์์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ค. sorted()
๋๋ reversed()
ํจ์(๋ฉ์๋ ์๋)๋ฅผ ์ฌ์ฉํ๋ค.animals.append('horse')
print(animals)
print(sorted(animals))
print(animals)
reversed()
ํจ์์ ๋ํด์๋ ์์ธํ ์์๋ณด์ง ์๋๋ค.
์ด๋ค ๋ชจ์์ ๋ฑ๋กํ๋ ์ฐธ๊ฐ์๋ค์ ๋ฆฌ์คํธ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ ์๋์ ๊ฐ์ด ๊ตฌํํ ์ ์๋ค.
menu_input = 0
name_list = []
while menu_input != 9:
print("==========")
print("1. ์ฐธ๊ฐ ์ฌ๋ถ ํ์ธ")
print("2. ์ฐธ๊ฐ ์ ์ฒญ")
print("3. ์ฐธ๊ฐ ์ทจ์")
print("4. ์ฐธ๊ฐ์๋ช
๋ณ๊ฒฝ")
print("5. ์ฐธ๊ฐ๋ช
๋จ")
print("6. ์ฐธ๊ฐ ์ธ์์ ํ์ธ")
print("9. ์ข
๋ฃ")
print("==========")
try:
menu_input = int(input("์ํ๋ ํญ๋ชฉ ๋ฒํธ๋ฅผ ์
๋ ฅํ์ธ์: "))
if menu_input == 1:
name = input("ํ์ธํ ์ด๋ฆ์ ์
๋ ฅํ์ธ์: ")
if name in name_list:
print("์ฐธ๊ฐ์ ๋ช
๋จ์ ์์ต๋๋ค.")
else:
print("์ฐธ๊ฐ์ ๋ช
๋จ์ ์์ต๋๋ค.")
if menu_input == 2:
name = input("์ฐธ๊ฐ ์ ์ฒญํ ์ด๋ฆ์ ์
๋ ฅํ์ธ์: ")
name_list.append(name)
if menu_input == 3:
name = input("์ฐธ๊ฐ ์ทจ์ํ ์ด๋ฆ์ ์
๋ ฅํ์ธ์: ")
name_list.remove(name)
if menu_input == 4:
name = input("๋ฑ๋กํ ์ด๋ฆ์ ์
๋ ฅํ์ธ์: ")
name_re = input("์์ ํ ์ด๋ฆ์ ์
๋ ฅํ์ธ์: ")
index = name_list.index(name)
name_list[index] = name_re
if menu_input == 5:
print("์ฐธ๊ฐ์ ๋ช
๋จ์ ", name_list, "์
๋๋ค.")
if menu_input == 6:
print("์ฐธ๊ฐ ์ธ์์๋ ", len(name_list), "์
๋๋ค.")
if menu_input == 9:
print("ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค.")
break
except:
print("์ ์๋ฅผ ์
๋ ฅํ์ธ์.")