기본 문법: my_dic = { "key1" : "value1", "key2" : "value2"}
index 대신 key 값을 사용하여 요소를 읽는다.
key값은 중복될 수 없다. 따라서, 이미 존재하는 key값을 입력할 경우, 값이 replace된다.
bts_rm = { "실명" : "김남준", "가명" : "RM", "태어난 년도": 1991 }
bts_rm["실명"] # 김남준
dictionary_name[new_key] = new_value
dictionary name[new_key] = 바꿀값입력
dictinoary_name.update({new_key: new_value})
del dictionary_name[new_key]
dictionary_name.pop(new_key, [, default]) # value to be returned when the key is not in the dictionary
pop()
: dictionary_name[new_key] = dictionary_name.pop(old_key)
# 2. 예제
my_dict = { "one" : 1 , 2: "two" }
my_dict[2] = "둘"
print(my_dict) # {"one" : 1 , 2 : "둘"}
또는,
my_dict = { "one" : 1 , 2: "two" }
my_dict.update({"one" : "하나"})
print(my_dict) # {"one" : "하나" , 2 : "two"}
# 3. 예제
my_dict = { "one" : 1 , 2: "two" }
del my_dict["one"]
print(my_dict) # {2 : "two"}
#4. 예제
my_dict = { "one" : 1 , 2: "two" }
my_dict["deux"] = my_dict.pop(2)
print(my_dict) # {"one" : 1 , "deux" : "two"}
for element in list:
do_something_with_element
my_list = [int(s) for s in input().split()]
odd_numbers = [ ] #먼저 홀수값들을 골라내서 리스트를 만들고
for element in my_list:
if (element % 2) == 1:
odd_numbers.append(element) #홀수값들을 하나 하나 기존 리스트에서 지움
for odd_number in odd_numbers:
my_list.remove(odd_number)
print(my_list) #홀수값들이 지워진 my_list가 출력됨
names = ['Kim', 'Lee', 'Park', 'Choi']
for element in names:
if element == "Lee"
break
else:
print("searching Lee..")
names = ['Kim', 'Lee', 'Park', 'Choi']
for element in names:
if element != "Lee":
print("searching Lee.."
continue
print("We found Mr.Lee!")
a =[[10,20],
[30,40],
[50,60]]
>>> a[0] [0] # 세로 인덱스 0, 가로 인덱스 0인 요소 출력
10
>>> a[1][1] # 세로 인덱스 1, 가로 인덱스 1인 요소 출력
40
>>> a[2][1] # 세로 인덱스 2, 가로 인덱스 0인 요소 출력
60
>>> a[0][1] = 1000 # 세로 인덱스 0, 가로 인덱스 1인 요소에 값 할당
>>> a[0][1]
1000
https://dojang.io/mod/page/view.php?id=2291
https://wikidocs.net/3094
#기본구조
while n != 5: #True/False로 판단할수 있는 조건
print(n) #위의 조건이 True일동안 반복할 코드..1
n += 1 #위의 조건이 True일동안 반복할 코드..2
#break,continue의 사용
number = 0
while number <= 10:
if number == 9:
break
elif number <= 5:
number += 1
continue
else:
print(number)
number += 1
> 6
7
8
#while..else 의 사용
def find_smallest_integer_divisor(numb):
divisor = 2
while numb % divisor != 0:
divisor += 1
else:
return divisor
>find_smallest_integer_divisor(15) #3
customers = { "name" : "Kim" , "gender" : "female" , "birthday" : 1025 }
for each_key in customers:
print(f"The {each_key} of our first customer is {customers[each_key]}.")
> The name of our first customer is Kim.
.value()
for each_value in customers.value()
print(f"Our first customer is {each_value}.")
.items()
를 사용하고 두개의 element
를 입력for each_key, each_value in customers.items()
print(f"The {each_key} of our first customer is {each_value}.")
bts = [
{
"실명" : "김남준",
"가명" : "RM",
"생년월일" : "1994년 9월 12일",
},
{
"실명" : "김석진",
"가명" : "진",
"생년월일" : "1992년 12월 4일",
}
]
def parent_function():
def child_function():
print("this is a child function")
child_function()
parent_function()
> "this is a child function"
def generate_power(base_num): #base가 되는 수를 지정하는 함수 - parent function
def nth_power(power): #base수를 지정한 후에만 access가능 - child function
return base_num ** power #base_num이 없으면 접근이 제한되는 정보
return nth_power #generate_power = parent 이므로, return은 child function = nth_power
calculate_power_of_two = generate_power(2) #base_num을 지정하여 변수만듦
calculate_power_of_two(7) #base_num을 지정한 상태이므로, power에 접근 가능
> 128
calculate_power_of_seven = generate_power(7)
calculate_power_of_seven(3)
> 343
@decorator function
이 먼저 호출된다def is_paid_user():
return True
@is_paid_user #항상 이 함수가 먼저 호출된다
def jackpot_stock_information():
return "계시가 내려졌습니다. 삼성전자를 사세요!"
def is_paid_user(func):
user_paid = True # 간단화 하기 위해 무조건 True
def wrapper(*args, **kwargs):
if user_paid:
func()
else:
return
return wrapper #중첩 함수를 리턴하는 함수
#decorate할 함수
def add(a, b):
return a + b
#a, b 와 add함수의 return값을 처리하는 decorator
def decorator(func): # 호출할 함수를 argument로 받음
def wrapper(a, b): # 호출할 함수와 같은 argument를 지정
r = func(a, b) # 호출할 함수에 argument를 넣어서 호출하고 반환값을 변수r에 저장
return r #호출할 함수의 반환값을 반환
return wrapper #wrapper함수 반환
@decorator
def add(a,b):
return a + b
print(add(10,20))
> 30
# decorate할 함수
def greeting()
return "Hello, "
def name_decorator(name): # decorator가 사용할 argument지정(=name) !this is the extra layer!
def real_decorator(func): # 호출할 함수를 argument로 받음 !greeting() 을 받는 함수!
def wrapper():
r = func() + name # 호출할 함수에 decorator의 argument가 할일을 저장하고 반환값을 r변수에 저장
return r
return wrapper
return real_decorator
@name_decorator("정우성")
def greeting():
return "Hello, "
greeting()
def func():
a = 1
print(a)
print(a) # 함수 바깥에서 호출했으므로 유효 범위 벗어남, *NameError*
def func():
a = 1
print(a)
def inner():
b = 7 # b는 inner안에서만 유효한 local scope
print(a * b) # a는 부모에서 선언된 변수이므로 nested에서도 유효
inner()
print(b) # inner함수 바깥에서 호출했으므로 유효 범위 벗어남, *NameError*
k = 9 # global scope
def func():
a = 1
print(a + k)
print(k) # 9