사생대회
강사: 이숙번님
이미지 생성, 가사 및 노래 제작 등 의 시간을 가짐.
- 영상 생성 사이트:
파이썬
1. Dictionary
numbers = [1, 2, 3, 4, 5]
user = {'name': '이숙번', 'location': '통영'}
print(user['name'])
print(user['location'])
# 결과
이숙번
통영
users = [
{"name": "이숙번", "location": "통영"},
{"name": "이고잉", "location": "서울"},
{"name": "이주화", "location": "대구"}
]
for user in users:
print(f"{user['name']}님은 {user['location']}에 살아요.")
# 결과
이숙번님은 통영에 살아요.
이고잉님은 서울에 살아요.
이주화님은 대구에 살아요.
- enumerate 사용
alphabets = ["a", "b", "c", "d", "e"]
for a in alphabets:
print(a)
for i in range(len(alphabets)):
print(i, alphabets[i])
# 위치 값과 같이 사용할 일이 있을 때엔 enumerate를 사용
for i, a in enumerate(alphabets):
print(i, a)
# 결과
a
b
c
d
e
0 a
1 b
2 c
3 d
4 e
0 a
1 b
2 c
3 d
4 e
users = {"name": "이숙번", "location": "통영"}
for k, v in user.items():
print(k, v)
# 결과
name 이주화
location 대구
students = ["a", "b", "c", "d", "e"]
scores = [90, 80, 70, 77, 95]
for i in range(len(students)):
print(students[i], scores[i])
for s1, s2 in zip(students, scores):
print(s1, s2)
# 결과
a 90
b 80
c 70
d 77
e 95
a 90
b 80
c 70
d 77
e 95
- 멀티 어싸인 사용
users = [
['a', 90],
['b', 80],
['c', 70],
['d', 77],
['e', 95]
]
for s1, s2 in users:
print(s1, s2)
- 같은 결과를 내는 함수들
for i, a in enumerate(alphabets):
print(i, a)
for s1, s2 in zip(students, scores):
print(s1, s2)
for s1, s2 in users:
print(s1, s2)
- 리스트들을 딕셔너리로 조합, 리스트 컴프리헨션 사용
names = ["a", "b", "c", "d", "e"]
scores = [90, 80, 70, 77, 95]
students = []
for name, score in zip(names, scores):
students.append([name, score])
# 리스트 컴프리헨션
students = [[name, score] for name, score in zip(names, scores)]
2. *연산자
def add(a, b):
return a + b
- add(*num)은 리스트 numbers의 각 쌍을 언패킹하여 두 요소를 add 함수의 인수 a와 b로 전달합니다.
numbers = [
[1, 3],
[2, 3],
[5, 6],
[7, 8]
]
for number1, number2 in numbers:
print(add(number1, number2))
for num in numbers:
print(add(num[0], num[1]))
# *를 list 변수에 붙이면, list에 있는 것을 분해해서 함수 파라미터로 assign 할 때 사용한다.
for num in numbers:
print(add(*num))
# 결과
4
5
11
15
numbers = [
{"b": 1, "a": 2},
{"b": 3, "a": 2},
]
# **를 dict 변수에 붙이면, dict에 있는 것을 분해해서 함수 파라미터롤 assign할 때 사용한다.
for num in numbers:
print(add(**num))
# list
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
list3 = [*list1, *list2]
print(list3)
# 결과
[1, 2, 3, 4, 5, 6, 7, 8]
# dict
dict1 = {'name': '이숙번', 'score': 90}
dict2 = {'location': '통영'}
dict3 = {**dict1, **dict2}
print(dict3)
# 결과
{'name': '이숙번', 'score': 90, 'location': '통영'}
- * 언박싱
scores = [
[90, 80],
[95, 85],
[88, 92]
]
score2 = []
for s in scores:
score2.append([s[0], s[1], (s[0] + s[1]) / 2])
print(score2)
scores =[[*s, (s[0] + s[1]) / 2] for s in scores]
print(scores)
# 결과
[[90, 80, 85.0], [95, 85, 90.0], [88, 92, 90.0]]
[[90, 80, 85.0], [95, 85, 90.0], [88, 92, 90.0]]
users = [
{"name": "이숙번", "수학": 90, "영어": 80},
{"name": "이고잉", "수학": 95, "영어": 85},
{"name": "이주화", "수학": 88, "영어": 92}
]
users = [{**u, "평균": (u["수학"] + u["영어"]) / 2} for u in users]
print(users)
# 결과
[{'name': '이숙번', '수학': 90, '영어': 80, '평균': 85.0}, {'name': '이고잉', '수학': 95, '영어': 85, '평균': 90.0}, {'name': '이주화', '수학': 88, '영어': 92, '평균': 90.0}]
- * 박싱
a, b, c = [1, 2, 3]
print(a, b, c)
a, *b = [1, 2, 3, 4, 5, 6]
print(a, b)
# 결과
1 2 3
1 [2, 3, 4, 5, 6]
def add(a,b, *args):
print(a, b, args)
return sum([a, b, *args])
add(1, 2, 4, 5, 6, 7, 8, 9, 0)
# 결과
1 2 (4, 5, 6, 7, 8, 9, 0)
42
- *args는 가변 인자로, 함수가 여러 개의 추가 위치 인수를 받을 수 있게 합니다.
- add(1, 2, 4, 5, 6, 7, 8, 9, 0)라고 함수를 호출하면:
a는 1, b는 2로 받고, 나머지 인수 4, 5, 6, 7, 8, 9, 0는 args 튜플에 저장됩니다.
def add(a, b, **kwargs):
print(a, b, kwargs)
add(1, 2, c=1, d=2, e=3)
# 결과
1 2 {'c': 1, 'd': 2, 'e': 3}
- **kwargs는 키워드 인수 가변 인자로 함수가 여러 개의 추가 키워드 인수를 딕셔너리 형태로 받을 수 있게 합니다.
- add(1, 2, c=1, d=2, e=3)라고 함수를 호출하면, a는 1, b는 2로 받고, 나머지 인수 c=1, d=2, e=3는 kwargs 딕셔너리로 전달됩니다.
- print(a, b, kwargs)는 a, b, 그리고 kwargs에 담긴 딕셔너리를 출력합니다.
출처: AI Hub 교육과정 - WEB+AI (위 내용이 문제가 된다면 댓글에 남겨주세요. 바로 삭제조치하도록 하겠습니다.)
'Programming 개발은 구글로 > 기타 정보' 카테고리의 다른 글
[WEB+AI] 21일차 머신러닝 (0) | 2024.11.11 |
---|---|
[WEB+AI] 20일차 Orange 3를 이용한 데이터 사이언스 입문 (7) | 2024.11.08 |
[WEB+AI] 18일차 Web+AI 사생대회 (6) | 2024.11.06 |
[WEB+AI] 17일차 티처블 머신 활용 + 머신러닝 (5) | 2024.11.05 |
[WEB+AI] 16일차 Gradio 복습 (6) | 2024.11.04 |
댓글