본문 바로가기
Programming 개발은 구글로/기타 정보

[WEB+AI] 19일차 사생대회 + 파이썬

by 40대직장인 2024. 11. 7.

사생대회

 

강사: 이숙번님

 

 

 이미지 생성, 가사 및 노래 제작 등 의 시간을 가짐.

 

 

 - 영상 생성 사이트:

https://runwayml.com/

 

 


 

파이썬

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 (위 내용이 문제가 된다면 댓글에 남겨주세요. 바로 삭제조치하도록 하겠습니다.)

 

 

댓글