a = [[10,20],[30,40],[50,60]]
from pprint import pprint
pprint(a, indent = 4, width= 20) #사각형 모양으로 이중리스트 출력원할시
[ [10,20],
[30,40],
[50,60]]
a = [[10,20],[30,40],[50,60]]
for x,y in a:
print(x,y)
print()
for i in a: #전체리스트에서 가로 한줄씩
for j in i: #가로한줄안에서 가로 안쪽 요소꺼냄
print(j, end = ' ')
print()
print()
for i in range(len(a)): #len(a) 는 3 으로 세로크기
for j in range(len(a[i])): #len(a[i])는 2로 가로크기
print(a[i][j], end = ' ')
print()
i = 0
while i < len(a):
x, y = a[i]
print(x,y)
i +=1
i = 0
while i < len(a):
j = 0
while j < len(a[i]):
print(a[i][j], end = ' ')
j += 1
print()
i += 1
a = []
for i in range(10):
a.append(0) # append로 요소 추가
print(a)
a = []
for i in range(3):
line =[] #안쪽 리스트로 사용할 빈 리스트 생성
for j in range(2):
line.append(0) #안쪽리스트에 0 추가
a.append(line) #전체리스트에 안쪽리스트 추가
print(a)
print('리스트 표현식으로 2 차원 list만들기')
a = [[0 for j in range(2)]for i in range(3)]
print(a)
print('리스트자체 곱을 통한 2 차원 list만들기')
a = [[0]*2 for i in range(3)]
print(a)
a = [[10,20], [30,40]]
b = a
b[0][0] = 500
print(a)
print(b) #이렇게 할당을 하면 두개의 값이 모두 바뀜
a =[[30,50],[60,80]]
b = a.copy()
b[0][0] =6060
print(a)
print(b)
a = [[90,34],[70,40]]
import copy
b = copy.deepcopy(a)
b[0][0] =700
print(a)
print(b)
a = [[[0for i in range(3)]for j in range(4)]for k in range(2)]
# 높이 세로 가로 크기로 3차원 리스트 생성된다.
a = [[[0for column in range(3)]for row in range(4)]for depth in range(2)]
print(a)
{}안에 지정해준 index에 맞춰 변수에 해당하는 값이 들어간다.
print('Hello, {0}'.format('world!'))
print("Hello, {0} {2} {1}".format('Python', "script", 3.6))
#brace안에 있는 숫자는 들어갈 인덱스를 지정하는것
#output ->Hello, Python 3.6 script
language = "Python"
version = 3.8
print(f'Hello, {language},{version}')
print('{0:<10}'.format('python'))#'{인덱스:<길이}'.format값
print('{0:>10}'.format('python'))
print('%03d'%1) # %0개수 d % 숫자
print('{0:03d}'.format(35)) # 인덱스:0 개수 d
print('%08.2f' %3.6) #소수점 이하 갯수까지 포함해 8개가됨
print('{0:08.2f}'.format(150.37))
print('{0:0<10}'.format(15)) #'{인덱스:[[채우기]정렬][길이][.자릿수][자료형]}'
print('{0:0>10}'.format(15)) #길이 10 오른쪽 정렬 남은공간 0으로 채움
print('{0: >10}'.format(15)) # 남는공간 공백으로 채움.
print('{0:x>10}'.format(15)) #남는공간 x로 채우고 오른쪽 정렬
#천단위 콤마넣기
print(format(10000000,','))
path = 'C:\\Users\\dojang\\AppData\\Local\\Programs\\Python\\Python36-32\\python.exe'
x = path.split('\\')
filename = x[-1]
print(filename)
#python.exe
#setdefault:키-값 쌍 추가
#update: 키의 값 수정, 키가 없으면 키 쌍 값 추가
x = {'a':10,'b':20,'c':30,'d':40}
x.setdefault('e')
x.setdefault('f',100)
print(x)
x.update(a=100)
print(x)
x.update(g= 800)
print(x)
x.update(a=900, h = 324)
print(x)
update는 키가 문자열일때만 사용가능하며 숫자일경우는 dictionary를 이용해야한다.
y = {1: 'one', 2:'two'}
print(y)
y.update({1:'ONE', 3:'Three'})
print(y)
y.update([[2,'Two'], [4,"FOUR"]]) #리스트와 튜플을 이용하여 딕셔너리에 값추가
print(y)
y.update(zip([1,2], ['one','two'])) # zip을 이용하여 수정
print(y)
#setdefault는 키 값의 쌍만 추가할 수 있으며 이미 들어 있는 값을 바꾸려해도 안 바꿔짐
x = {'a':10, 'b':20, 'c':30, 'd':40}
x.pop('a') #a의 key&value를 제거함.
print(x)
x = {'a':10, 'b':20, 'c':30, 'd':40}
del x['a'] #a의 key&value를 제거함.
print(x)
x ={'a':10, 'b':20,'c':30,'d':40}
x.popitem() #오른쪽끝의 키값인 d:40 부터 제거된다.
print(x)
x ={'a':10, 'b':20,'c':30,'d':40}
x.clear()
print(x)
x ={'a':10, 'b':20,'c':30,'d':40}
print(x.get('a')) #해당 key값 미존재시 0으로 값 반환
print(x.items())
print(x.keys())
print(x.values())
keys = ['a','b','c','d']
x = {key:value for key, value in dict.fromkeys(keys).items()}
print(x)
keys = ['a','b','c','d']
x = {key: 0 for key in dict.fromkeys(['a','b','c','d']).keys()}
print(x)
a = {'a':10, 'b':20, 'c':30, 'd':40}
x = {key: 0 for key in dict.fromkeys(a).keys()}
y = {value: 0 for value in a.values()}
print(x) # key를 value가 0인 dict로 가져와서 프린트
print(y) # value값이 key 이며 새로운 Value가 0인것인 dict로 프린트
z = {value: key for key, value in a.items()}
print(z) #key value 위치 바꿔서 출력
x = {'a':10, 'b':20, 'c':30, 'd':40}
for key, value in x.items():
if value == 20:
del x[key]
print(x)
#이렇게 직접 삭제할 수가 없음 도중에 dict의 크기가 바뀌었다는 Error가 뜨기 때문
x = {key: value for key, value in x.items()if value != 20}
print(x)
a ={1,2,3,4}같은게 집합
dict와 같은 Brace를 쓰나 혼동하면 안된다.
a = set('apple')
print(a) #반복되는것은 사라지고 set이 생성됨
#print(a['l']) # 이렇게 따로 대괄호로 불러내지 못함.
a ={1,2,3,4}
b ={3,4,5,6}
print(a|b)
print(set.union(a,b))
#set.union() 또는 or연산자로 합집합(union)을 구할 수 있다.
합집합을 제외하고라도 부분집합 진부분집합 등 다루는 게 너무 많으나
이건 복습용 TIL작성이니 넘어가도록 해야겠다..
아래 두개는 코테에 자주나오는 공배수 공약수 문제이니 눈에 익힐 겸 적어 놓아야지
(조건문을 유의하며 보자)
a ={i for i in range(1,101)if i%3 == 0}
b ={i for i in range(1,101)if i % 5 == 0}
print(a&b)
print(set.intersection(a,b))
n, m = map(int, input().split())
a = {i for i in range(1,n+1,1) if n%i == 0}
b = {j for j in range(1,m+1,1) if m%j == 0}
print(a)
divisor = a & b
result = 0
if type(divisor) == set:
result = sum(divisor)
print(result)
오늘까지 재미없지만 매우 중요한것을 배운 것 같다.
list의 활용법이나 dictionary,set의 다양한 작성법 등은
알고리즘문제 풀이를 찾다가도 이게 왜이렇지? 라면서 시간을 많이 보냈는데
아주 조금이나마 의문이 해소된것같아 기쁘다 ㅋ..
내일부터는 조금 재밌는걸 할 수 있으면 좋겠다 ..