BACK END/Python

2일(10.05) 이중리스트, 튜플, 사전

라미보 2022. 10. 5. 14:00

 

💻03_리스트

💾 Ex03_list

 

#_*_coding:utf-8
'''
Created on 2022. 10. 5.

@author: admin
'''

# {{}, {}, {}}
L = [['a','b'],[1,2,3]]
print('L:',L) #L: [['a', 'b'], [1, 2, 3]]
print(L[0][0]) #a
print(L[1][1]) #2
print(L[1][2]) #3
print(L[0]) #['a', 'b']
print(L[1]) #[1, 2, 3]
print(len(L)) #행의 길이 2개
print(len(L[0])) #2
print(len(L[1])) #3

#이중 for문을 사용해서 출력해보기
for i in range(len(L)) : #range(0,2,1) 0과1 이 들어간다.
    for j in range(0,len(L[i])) : #0행의 길이만큼 반복할 수 있고 , 1행의 길이만큼 반복할 수 있다.
        print(L[i][j],end='')  #행은 천천히 바뀌고, 열만 빨리 증가한다
    print()
print('-------')


for i in L : #i변수에 한 행이 들어간다. 반복하면서 행이 출력된다.
    print(i) 
'''
['a', 'b']
[1, 2, 3]
'''
print('-------')
for i in L :
    for j in i : #j변수에 i가 들어간다. 행이 들어간다.
        print(j,end='')
    print()
    
'''
ab
123
'''
print('-------')



#비어있는 리스트에 데이터 넣는방법
L2 = []
for i in range(10) : #두가지 형식으로 바꿔보기 -(0,10,1) (0,10)
    #L2.insert(i,i) #0번째 위치에 0넣고 1위치에 1넣고 
    #L2.append(i)
    L2 += [i]
print('L2:',L2)
print('-------')

L3 = [i*i for i in range(10)] #하나씩 증가하면서, 증가한 값을 곱해서 *리스트안에서 반복문을 사용한다.*
print('L3:',L3)

 

L = [['a','b'],[1,2,3]]
print('L:',L)  #L: [['a', 'b'], [1, 2, 3]]
print(L[0][0])  #a
print(L[1][1])  #2
print(L[1][2])  #3
print(L[0])  #['a', 'b']
print(L[1])  #[1, 2, 3]
print(len(L))  #행의 길이 2개
print(len(L[0]))  #2
print(len(L[1]))  #3

#이중 for문을 사용해서 출력해보기
for i in range(len(L)) :  #range(0,2,1) 0과1 이 들어간다.
    for j in range(0,len(L[i])) :  #0행의 길이만큼 반복할 수 있고 , 1행의 길이만큼 반복할 수 있다.
        print(L[i][j],end='')   #행(i)은 천천히 바뀌고, 열(j)만 빨리 증가한다
    print()

 

결과:
ab
123



for i in L :  # i 변수에 한 행이 들어간다. 반복하면서 행이 출력된다.
    print(i) 

 

결과:
['a', 'b']
[1, 2, 3]


for i in L :
    for j in i : #j변수에 i가 들어간다. 행이 들어간다.
        print(j,end='')
    print()
    
결과:
ab
123




#비어있는 리스트에 데이터 넣는방법
L2 = []
for i in range(10) :  #두가지 형식으로 바꿔보기 -(0,10,1) (0,10)  같은것!
    #L2.insert(i,i)  #0번째 위치에 0넣고 1위치에 1넣고 
    #L2.append(i)
    L2 += [i]
print('L2:',L2)  # L2: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print('-------')

L3 = [i*i for i in range(10)]  # 하나씩 증가하면서, 증가한 값을 곱해서 *리스트안에서 반복문을 사용한다.*
print('L3:',L3)   # L3: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

 

 

 

 

💾 Ex04_list

#_*_coding:utf-8
'''
Created on 2022. 10. 5.

@author: admin
'''
'''
리스트 요소 하나하나 출력하는 방법
0 : 90
1 : 20
2 : 35
3 : 49
4 : 88
'''
jumsu =[90,20,35,49,88]
# 0-4 방을 반복해서 출력
for i in range(0,jumsu.__len__()) :
    print(i,':',jumsu[i])
print()

#리스트 자체를 반복
for i in jumsu :
    print(jumsu.index(i),':',i)    

print('합계:', sum(jumsu))
print('최대값:', max(jumsu))
print('최소값:', min(jumsu))

#enumerate 함수를 사용해서 리스트반복
for a,b in enumerate(jumsu,start=1) :
    print(a,'/',b)
print()

for a in enumerate(jumsu,start=1) :
    print(a)

 

 

리스트 요소 하나하나 출력하는 방법

아래와 같이 출력해보기!
0 : 90
1 : 20
2 : 35
3 : 49
4 : 88

jumsu =[90,20,35,49,88]
# 0-4 방을 반복해서 출력
for i in range(0,jumsu.__len__()) :
    print(i,':',jumsu[i])
print()

#리스트 자체를 반복
for i in jumsu :
    print(jumsu.index(i),':',i)    

print('합계:', sum(jumsu))
print('최대값:', max(jumsu))
print('최소값:', min(jumsu))

 


#enumerate 함수를 사용해서 리스트반복

#enumerate로 가져오는 값은 결과가 튜플형태로 나온다.

 

for a,b in enumerate(jumsu,start=1) :
    print(a,'/',b)
print()
  
for a in enumerate(jumsu,start=1) :
    print(a)

 

 

 

 

💻04_튜플

💾 Ex01_tuple

#_*_coding:utf-8
'''
Created on 2022. 10. 5.

@author: admin

여러데이터를 한묶음으로 묶어서 관리할 수 있다. 
리스트는 대괄호[]로 묶지만
튜플은 소괄호로() 묶는다.
'''
t1 = ()
t2 = (1,2,3)
t3 = 1,2,3
t4 = (1,) # 하나라도 쉼표가 있으면 튜플이다. 뒤에 데이터가 더 있던 없던
t5 = 1,
t6 = (1) #데이터가 하나만 있고 쉼표가 없으면 int이다
t7 =1

print(t1,type(t1))
print(t2,type(t2))
print(t3,type(t3))
print(t4,type(t4))
print(t5,type(t5))
print(t6,type(t6))
print(t7,type(t7))
print(t2[0]) #소괄호로 하지 않고, 대괄호로 방에 접근을 한다.
print(len(t2)) #t2의 방의 개수는 3개

t =(1,2,3)
t2 = t + ('kim','park')
print('t2:', t2) #t2의 방의 개수는 5개가 된다. t2: (1, 2, 3, 'kim', 'park')


t =(1,2,3)
t2 = t , ('kim','park')
print('t2:', t2) #t2: ((1, 2, 3), ('kim', 'park'))

print(t2[0]) #(1, 2, 3)
print(t2[1]) #('kim', 'park')
print(t2[1][0]) #kim



t =(1,2,3)
#t[1] = 10
print('t:', t) # 튜플은 변경 불가능 에러발생 TypeError: 'tuple' object does not support item assignment


x,y,z = (1,2,3)
print('x:',x) # x: 1
print('y:',y) #y: 2
print('z:',z)

#x,y의 값을 바꾼다.
x,y = y,x
print('x:',x) #x: 2
print('y:',y) #y: 1

#튜플을 리스트로 바꾸는 방법
t = (1,2,3)
L = list(t)
L[1] =10
print('t:',t) #t: (1, 2, 3)
print('L:',L) #L: [1, 10, 3]
#리스트를 다시 튜플로 바꾸기
t=tuple(L)
print('t:',t) #t: (1, 10, 3)


print('==========')
#t =(1,2,3) 을 [3,6,9] 리스트로 만들고 출력도 해보기
t = (1,2,3)
t2=[]
for i in t:
    t2 += [i*3]
print(t2) #[3, 6, 9]

print([i*3 for i in t])#[3, 6, 9]

 


여러데이터를 한묶음으로 묶어서 관리할 수 있다. 
리스트는 대괄호[]로 묶지만
튜플은 소괄호로() 묶는다.

t1 = ()
t2 = (1,2,3)
t3 = 1,2,3
t4 = (1,) # 하나라도 쉼표가 있으면 튜플이다. 뒤에 데이터가 더 있던 없던
t5 = 1,
t6 = (1) #데이터가 하나만 있고 쉼표가 없으면 int이다
t7 =1

print(t1,type(t1))
print(t2,type(t2))
print(t3,type(t3))
print(t4,type(t4))
print(t5,type(t5))
print(t6,type(t6))
print(t7,type(t7))
print(t2[0]) #소괄호로 하지 않고, 대괄호로 방에 접근을 한다.
print(len(t2)) #t2의 방의 개수는 3개

t =(1,2,3)
t2 = t + ('kim','park')
print('t2:', t2) #t2의 방의 개수는 5개가 된다. t2: (1, 2, 3, 'kim', 'park')


t =(1,2,3)
t2 = t , ('kim','park')
print('t2:', t2) #t2: ((1, 2, 3), ('kim', 'park'))

print(t2[0]) #(1, 2, 3)
print(t2[1]) #('kim', 'park')
print(t2[1][0]) #kim



t =(1,2,3)
#t[1] = 10
print('t:', t) # 튜플은 변경 불가능 에러발생 TypeError: 'tuple' object does not support item assignment


x,y,z = (1,2,3)
print('x:',x) # x: 1
print('y:',y) #y: 2
print('z:',z)

#x,y의 값을 바꾼다.
x,y = y,x
print('x:',x) #x: 2
print('y:',y) #y: 1

#튜플을 리스트로 바꾸는 방법
t = (1,2,3)
L = list(t)
L[1] =10
print('t:',t) #t: (1, 2, 3)
print('L:',L) #L: [1, 10, 3]
#리스트를 다시 튜플로 바꾸기
t=tuple(L)
print('t:',t) #t: (1, 10, 3)



#t =(1,2,3) 을 [3,6,9] 리스트로 만들고 출력도 해보기
t = (1,2,3)
t2=[]
for i in t:
    t2 += [i*3]
print(t2) #[3, 6, 9]

print([i*3 for i in t])#[3, 6, 9]

 

 

 

💻05_사전

💾 Ex01_dict

#_*_coding:utf-8
'''
Created on 2022. 10. 5.

@author: admin
'''
#사전은 자바의 map과 같은 구조를 가지고 있다.
#map : key,value
#{key,value}
#데이터를 표현하는 방법에는 리스트[], 튜플(), 사전{}
d ={'one':'hana','two':'dul','three':'set'} #one':'hana' = key:value
print(d)
print(type(d)) #<class 'dict'>
print(d['two']) #key를 적어주면 key에 해당하는 value를 가져온다. =dul, 자바에서는 d.get('two')로 사용한다.
#print(d['set']) #key만 쓸 수 있다. value를 쓰면 에러발생 key를 가져올수 없다.
d['one'] =1 #'one'의 value를 1로 바꾸었다.
print(d)
d['four'] = 'net' #사전안에 있으면 변경이 되고, 없으면 추가가 된다. 
print(d)

print(len(d))
print(len(d['four'])) #net이라는 글자 수를 가져온다 len('net')
print('one' in d) #key가 있으므로 True
print('dul' in d) #key에 없으므로 False 출력된다. value이다.

print(d.keys()) #dict_keys(['one', 'two', 'three', 'four'])
print(d.values()) #dict_values([1, 'dul', 'set', 'net']) value만 가져온다.
print('dul' in d.values()) #values중에 'dul'이라는 것이 있냐 , True출력됨
print(d.items())#items함수의 기능: 리스트 안에 튜플로 key와 value가 묶여있다.
#dict_items([('one', 1), ('two', 'dul'), ('three', 'set'), ('four', 'net')])




d2 ={}
w1 = 'Hello' #5글자
w2 = 'World~~' #7글자
#길이를 구해서 value값을 구해서 {'Hello':5, 'World~~':7}
d2[w1] =len(w1)
d2[w2] =len(w2)
print('d2:',d2) #d2: {'Hello': 5, 'World~~': 7}

#사전 만드는 여러가지 방법

d3=dict() #d3 {}
print('d3',d3)

d3=dict(one=1, two=2) #d3 {}
print('d3',d3)

d3=dict([['one',1],['two',2]]) #d3 {}
print('d3:',d3)

 

 

#사전은 자바의 map과 같은 구조를 가지고 있다.
#map : key,value
#{key,value}
#데이터를 표현하는 방법에는 리스트[], 튜플(), 사전{}
d ={'one':'hana','two':'dul','three':'set'} #one':'hana' = key:value
print(d)
print(type(d)) #<class 'dict'>
print(d['two']) #key를 적어주면 key에 해당하는 value를 가져온다. =dul, 자바에서는 d.get('two')로 사용한다.
#print(d['set']) #key만 쓸 수 있다. value를 쓰면 에러발생 key를 가져올수 없다.
d['one'] =1 #'one'의 value를 1로 바꾸었다.
print(d)
d['four'] = 'net' #사전안에 있으면 변경이 되고, 없으면 추가가 된다. 
print(d)

print(len(d))
print(len(d['four'])) #net이라는 글자 수를 가져온다 len('net')
print('one' in d) #key가 있으므로 True
print('dul' in d) #key에 없으므로 False 출력된다. value이다.

print(d.keys()) #dict_keys(['one', 'two', 'three', 'four'])
print(d.values()) #dict_values([1, 'dul', 'set', 'net']) value만 가져온다.
print('dul' in d.values()) #values중에 'dul'이라는 것이 있냐 , True출력됨
print(d.items())#items함수의 기능: 리스트 안에 튜플로 key와 value가 묶여있다.
#dict_items([('one', 1), ('two', 'dul'), ('three', 'set'), ('four', 'net')])




d2 ={}
w1 = 'Hello' #5글자
w2 = 'World~~' #7글자
#길이를 구해서 value값을 구해서 {'Hello':5, 'World~~':7}
d2[w1] =len(w1)
d2[w2] =len(w2)
print('d2:',d2) #d2: {'Hello': 5, 'World~~': 7}

#사전 만드는 여러가지 방법

d3=dict() #d3 {}
print('d3',d3)

d3=dict(one=1, two=2) #d3 {}
print('d3',d3)

d3=dict([['one',1],['two',2]]) #d3 {}
print('d3:',d3)

 

 

 

 

 

💾 Ex02_dict

#_*_coding:utf-8
'''
Created on 2022. 10. 5.

@author: admin
'''

jumsu1={'kim':33, 'park':77, 'choi':42}
jumsu2={'kim':88, 'lee':97, 'hong':42}

print(jumsu1['kim']) #33
#print(jumsu1['oh'])  없는 것을 가져오려 하면 에러발생한다.
print(jumsu1.get('kim')) #33
print(jumsu1.get('oh')) # None, 없는 키값을 적으면 vlaue none으로 나온다.

#함수를 이용하여 키가 있는지 없는지 알 수 있다.
if jumsu1.get('oh') == None :
    print('oh 없음')
else :
    print('oh 있음')
    
jumsu1.update(jumsu2) # 점수1을 업데이트
print('jumsu1:',jumsu1)
#jumsu1: {'kim': 88, 'park': 77, 'choi': 42, 'lee': 97, 'hong': 42} 겹치는게 있으면 바뀌고, 겹치는것이 없으면 추가가된다.

del jumsu1['kim'] #점수1의 kim 삭제
print('jumsu1:', jumsu1)
#jumsu1: {'park': 77, 'choi': 42, 'lee': 97, 'hong': 42}

jumsu1.clear()
print('jumsu1:', jumsu1) #jumsu1: {} 삭제 아니고 요소들을 지운다.


del jumsu1 #사전 전체를 지우는것, 이미 지웠으므로 출력하면 에러발생한다
#print('jumsu1:', jumsu1)

 

print(jumsu1['kim']) #33
#print(jumsu1['oh'])  없는 것을 가져오려 하면 에러발생한다.
print(jumsu1.get('kim')) #33
print(jumsu1.get('oh')) # None, 없는 키값을 적으면 vlaue none으로 나온다.

#함수를 이용하여 키가 있는지 없는지 알 수 있다.
if jumsu1.get('oh') == None :
    print('oh 없음')
else :
    print('oh 있음')
    
jumsu1.update(jumsu2) # 점수1을 업데이트
print('jumsu1:',jumsu1)
#jumsu1: {'kim': 88, 'park': 77, 'choi': 42, 'lee': 97, 'hong': 42} 겹치는게 있으면 바뀌고, 겹치는것이 없으면 추가가된다.

del jumsu1['kim'] #점수1의 kim 삭제
print('jumsu1:', jumsu1)
#jumsu1: {'park': 77, 'choi': 42, 'lee': 97, 'hong': 42}

jumsu1.clear()
print('jumsu1:', jumsu1) #jumsu1: {} 삭제 아니고 요소들을 지운다.


del jumsu1 #사전 전체를 지우는것, 이미 지웠으므로 출력하면 에러발생한다
#print('jumsu1:', jumsu1)

 

 

 

 

 

💾 Ex03_dict

#_*_coding:utf-8
'''
Created on 2022. 10. 5.

@author: admin
'''

d ={'one':'hana','two':'dul','three':'set'} 
print(d)


print(d.keys()) #key만 가져온다.
for i in d.keys() :
    print(i)
print('------------------------')

for i in d.values() :
    print(i)
print('------------------------')    
    
for i in d :
    print(i,d[i],d.get(i))
#사전을 반복하는 것은 key를 반복하는 것이다.

print('------------------------') 

for i in d.items() :
    print(i,i[0],i[1])
    
print('------------------------') 

for i,j in d.items() :
    print(i,j)

print('------------------------') 

for i,j in enumerate(d) :
    print(i,j,d[j])

d ={'one':'hana','two':'dul','three':'set'} 
print(d) #{'one': 'hana', 'two': 'dul', 'three': 'set'}
print('------------------------')

print(d.keys()) #key만 가져온다.
for i in d.keys() :
    print(i)  
    '''
    dict_keys(['one', 'two', 'three'])
    one
    two
    three
    '''
print('------------------------')

for i in d.values() :
    print(i)
  
   
   # hana
   # dul
   # set
    
print('------------------------')    
    
for i in d :
    print(i,d[i],d.get(i))
    '''
   one hana hana
    two dul dul
    three set set
    '''
#사전을 반복하는 것은 key를 반복하는 것이다.

print('------------------------') 

for i in d.items() :
    print(i,i[0],i[1])
    
   '''
    ('one', 'hana') one hana
    ('two', 'dul') two dul
    ('three', 'set') three set
    '''
    
print('------------------------') 

for i,j in d.items() :
    print(i,j)
    
    '''
    one hana
    two dul
    three set    
    '''

print('------------------------') 

for i,j in enumerate(d) :
    print(i,j,d[j])
    
    '''
    0 one hana
    1 two dul
    2 three set

    '''