파이썬 (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