728x90
728x90

파이썬 (Python)

- 2차원 리스트 만들기

리스트 내포 [ List Comprehension] 을 사용하여 2차원 리스트 만들기

 

# 10 x 10 2차원 배열

# 1차원 리스트

lista = [ i for i range(10)]

>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 2차원 리스트

listb = [lista for _ range(10)]

>>> [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ...]

listb = [ [ i for i in range(10) ] for _ in range(10)]

>>>[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ...]

 

- 2차원 리스트 요소 접근

list[j][i]

 

#2차원 리스트 요소 접근 

for i in range(10):
	for j in range(10):
    	data = list[j][i]
        

 

- 2차원 리스트 출력

for y in range(len(listb)):
    for x in range(len(listb)):
        print(listb[y][x],end=' ')
    print('')
    
    
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 

 

- 비트 연산자를 이용한 부분 집합 구하기

list = [1,2,3,4,5]

 

list = ['a','b','c']
n = len(list)
for i in range(1<<n):

    for j in range(n):
        if i & (1<<j):
            print(list[j],end=' ')
    print(' ')


a  
b  
a b  
c  
a c  
b c  
a b c  

- 부분 집합 리스트에 담기 

list = ['a','b','c']
n = len(list)
set_list = []
for i in range(1<<n):
    sub_set_list = []
    for j in range(n):
        if i & (1<<j):
            sub_set_list.append(list[j])
    set_list.append(sub_set_list)
print(set_list)

[[], ['a'], ['b'], ['a', 'b'], ['c'], ['a', 'c'], ['b', 'c'], ['a', 'b', 'c']]

- 4자리 2진수 표현하기

num = 10
m , n = 0,0
result = ''
for i in range(4):
    m =num//2
    n =num%2
    result = str(n) + result
    num = m
print(result)

>>>1010

- 16진수를 2진수 표현하는 문제  

 

conversion = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
decimal_number = "45DF"
def binary(num):
    m , n = 0,0
    result = ''
    for i in range(4):
        m =num//2
        n =num%2
        result = str(n) + result
        num = m
    return result

final_list = ''
for i in decimal_number:
    result = binary(conversion[i])
    final_list += result
print(final_list)

>>> 0100010111011111

 

- 0 보다 크고 1 미만인 실수인 10 진수 > 2진수로 표현

num = 0.625
result =''
while True:
    next_num = num*2
    result += str(int(next_num))
    num = next_num - int(next_num)
    if num == 0.0:
        break
print('0.'+result)

>>> 0.101

 

728x90
728x90
728x90

+ Recent posts