😀Language/Python

파이썬 기초

말동말동현 2024. 10. 15. 00:22

list

lst = []
lst = list()

같은 방식으로 생성

 

 

 

extend

lst1 = [1, 5, 1]
lst2 = ['Hello', 'Python', 0.999]

lst1.extend(lst2)
print(lst1)

 

 

 

list comprehension

lst = []
for i in range(10):
    if i % 2 == 0:
        lst.append(i)
        
        
lst = [i for i in range(10) if i % 2 == 0]

>> [0, 2, 4, 6, 8]

 

 

 

matrix = [[j for j in range(3)] for i in range(4)]
print(matrix)

>> [[0, 0, 0], [0, 1, 2], [0, 2, 4], [0, 3, 6]]

matrix = []
for i in range(4):
    row = []
    for j in range(3):
        row.append(i * j)
    matrix.append(row)
    
---------------------------
matrix = [i*j for j in range(3) for i in range(4)]
print(matrix)

>> [0, 0, 0, 0, 0, 1, 2, 3, 0, 2, 4, 6]

matrix = []
for j in range(3):
    for i in range(4):
        matrix.append(i * j)

print(matrix)

 

 

 

tuple

t = ()
t = tuple()

방식으로 생성

 

튜플을 변경하는 것은 불가능 (ex. t[0] = 10 (X))

 

 

set

set1 = set()

방식으로 생성

 

 

 

dictionary

vocab = {}
vocab = dict()

 

방식으로 생성

 

예시

vocab= {}
vocab['apple'] = '사과'
vocab['ball'] = '공'
vocab['cat'] = '고양이'

print(vocab)

{'apple': '사과', 'ball': '공', 'cat': '고양이'}

 

 

dict comprehension1

keys = ['a', 'b', 'c', 'd', 'e']
values = [1,2,3,4,5]

myDict = {k:v for (k,v) in zip(keys, values)}

myDict2 = dict(zip(keys,values))

print(myDict)
print(myDict2)


>> {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
>> {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

 

dict comprehension2

myDict = {x: x**2 for x in [1,2,3,4,5]}
myDict2 = {x.upper(): x*3 for x in 'python'}

print(myDict)
print(myDict2)

>> {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
>> {'P': 'ppp', 'Y': 'yyy', 'T': 'ttt', 'H': 'hhh', 'O': 'ooo', 'N': 'nnn'}

 

 

dict comprehension2

l = "GFG"
dic = {x: {y: x+y for y in l} for x in l}

print(dic)

>> {'G': {'G': 'GG', 'F': 'GF'}, 'F': {'G': 'FG', 'F': 'FF'}}

 

 

 

sort & sorted

 

 

mylist = [["co", 1, "Q"], ["bar", 0 ,"Z"], ["after", 3 ,"X"], ["data", 2, "y"]]
print(sorted(mylist, key=lambda x:x[1]))

>> [['bar', 0, 'Z'], ['co', 1, 'Q'], ['data', 2, 'y'], ['after', 3, 'X']]


print(sorted(mylist, key=lambda x:len(x[0])))

>> [['co', 1, 'Q'], ['bar', 0, 'Z'], ['data', 2, 'y'], ['after', 3, 'X']]

 

 

 

lambda

 

예시1

filter_nums = lambda s: ''.join([ch for ch in s if not ch.isdigit()])
print("filter_nums():", filter_nums("Geeks101"))

>> filter_nums(): Geeks

do_exclaim = lambda s: s + '!'
print("do_exclaim():", do_exclaim("Python is fun"))

>> do_exclaim(): Python is fun!

find_sum = lambda n: sum([int(x) for x in str(n)])
print("find_sum():", find_sum(1051))

>> find_sum(): 7

 

 

예시2

l = ["1", "2", "9", "0", "-1", "-2"]

# (1) sort list[str] numerically using sorted

sorted_list = sorted(l, key=lambda x: int(x))
sorted_list = sorted(l, key=int)

# (2) filter positive even numbers

positive_even = list(filter(lambda num: int(num) > 0 and int(num) % 2 == 0, sorted_list))
# [num for num in sorted_list if int(num) > 0 and int(num) % 2 == 0]


# (3) added 10 to each item after type and
# casting to int, then convert items to string again

result = list(map(lambda num: str(int(num) + 10), positive_even))
result = [str(int(num) + 10) for num in positive_even]