# 1차원 배열 : 리스트로 구현 시
data = [1,2,3,4,5,6,7,8]
print(data) # [1, 2, 3, 4, 5, 6, 7, 8]
# 2차원 배열 : 리스트로 구현 시
data = [[1,2,3],[4,5,6],[7,8,9]]
print(data) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(data[0]) # [1, 2, 3]
print(data[1]) # [4, 5, 6]
print(data[2]) # [7, 8, 9]
print(data[0][0]) # 1
print(data[0][1]) # 2
print(data[0][2]) # 3
A = [1,2,3]
B = [9,8,7]
print(A+B) # [1, 2, 3, 9, 8, 7]
print(A*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(A.pop(0)) # 1
A.append(15) # None Type
print(A) # [2, 3, 15]
A.extend([4,5,6]) # None Type
print(A) # [2, 3, 15, 4, 5, 6]
A.insert(3, 300) # None Type
print(A) # [2, 3, 15, 300, 4, 5, 6]
None Type? => 값이 존재하지 않음(None Object)을 나타내는 Type. 즉, 배열 자체에 연산을 수행하지만 리턴 값이 없는 함수를 말함
sort(reverse=True)
로 수행A = [1,2,3,0,3,4,7,5,5,10]
print(A.index(10)) # 9
print(A.count(5)) # 2
print(len(A)) # 10
print(A[0:9:2]) # [1, 3, 3, 7, 5]
A.remove(2)
print(A) # [1, 3, 0, 3, 4, 7, 5, 5, 10]
A.reverse()
print(A) # [10, 5, 5, 7, 4, 3, 0, 3, 1]
A.sort()
print(A) # [0, 1, 3, 3, 4, 5, 5, 7, 10]
a = "Lorem ipsum dolor sit amet, consectetur adipiscing elit"
A = [0, 1,3,4,5,2,4,3]
print(a.split(" ")) # ['Lorem', 'ipsum', 'dolor', 'sit', 'amet,', 'consectetur', 'adipiscing', 'elit']
print(list(a)) # ['L', 'o', 'r', 'e', 'm', ... , 'g', ' ', 'e', 'l', 'i', 't']
print(5 in A) # True
print(sum(A)) # 22
print(max(A)) # 5
print(min(A)) # 1
print(all(A)) # False
print(any(A)) # True
print(divmod(20,3)) # (6, 2)
출처 : https://debugdaldal.tistory.com/158
# 다음 단어 더미 데이터셋에서 's'가 몇 번 나왔는지 빈도수 출력
dataset = ['Lorem', 'ipsum', 'dolor', 'sit', 'amet,', 'consectetur',
'adipiscing', 'elit.', 'Sed', 'pretium', 'vestibulum', 'massa,',
'ac', 'pharetra', 'nisi', 'egestas', 'at.', 'Ut', 'et', 'est',
'interdum,', 'porttitor', 'metus', 'sit', 'amet,', 'maximus',
'enim.', 'Fusce', 'egestas', 'eros', 'blandit', 'convallis',
'ultrices.', 'Nulla', 'purus', 'lorem,', 'porttitor', 'id', 'auctor',
'id,', 'vestibulum', 'ut', 'metus.', 'Morbi', 'blandit', 'ultricies',
'elit', 'vel', 'fringilla.', 'Proin', 'imperdiet', 'vestibulum',
'sem,', 'id', 'vehicula', 'lorem', 'consectetur', 'sit', 'amet.',
'Ut', 'vitae', 'mauris', 'a', 'urna', 'tempus', 'imperdiet',
'elementum', 'ullamcorper', 'metus.', 'Praesent', 'non', 'mi', 'augue.',
'Curabitur', 'sed', 'venenatis', 'nibh,', 'vitae', 'dapibus', 'sem.']
# 's'의 빈도수를 나타내는 s_count
s_count = 0
# 반복가능한 객체(iterable 객체)의 element(data)를 반복문을 통해 리턴
for data in dataset:
# 각 element(data)의 길이만큼 반복문 실행
for index in range(len(data)):
# 스펠링을 하나씩 비교하며, 's'와 일치하면 s_count 1 증가
if data[index] == 's':
s_count += 1
print(s_count) # 36
반복 가능한 객체(iterable)는 list, dictionary, set, string, tuple, range 등이 있다
# 공백을 포함한 한 문장을 입력받아서 가장 긴 단어를 출력
# 가장 긴 단어가 여러 개인 경우 모두 출력
# 이 문제에서의 단어란? 공백으로 분리하는 문자열
sentence = "Aliquam accumsan sollicitudin massa non vehicula nibh."
# 문장을 공백을 기준으로 나누어 배열에 넣어준다
arr = sentence.split(" ")
print(arr) # ['Aliquam', 'accumsan', 'sollicitudin', 'massa', 'non', 'vehicula', 'nibh.']
# 단어의 최대 길이를 0으로 초기화 시켜줌
maxLen = 0
result = []
# arr에 있는 모든 data를 반복
for data in arr:
# 만약 현재 단어의 길이가 maxLen보다 크다면
if(len(data) > maxLen):
# maxLen을 현재 단어 길이로 바꿔줌
maxLen = len(data)
print(maxLen) # 12
# 자료형 크기의 range를 이용하면 index로 접근할 수 있음
for index in range(len(arr)):
# arr에서 index번째 단어 길이가 maxLen과 같다면
if(len(arr[index]) == maxLen):
# result에 현재 단어(arr[index])를 추가시켜준다
result.append(arr[index])
print(result) # ['sollicitudin']
append는 리스트 맨 마지막에 x 를 추가하는 함수
insert는 a 번째 위치에 b를 삽입하는 함수
# 정수를 입력으로 받아,
# 짝수이면 2 로 나누고 , 홀수이면 3배 해서 1 을 더함
# 1이 될 때 까지의 과정을 반복한 배열을 출력하는 프로그램 작성
num = 30 # num에 30이라는 숫자를 넣어준다
arr = [] # 1이 될 때 까지의 과정을 arr에 넣을 것
arr.append(num) # 처음 num을 arr에 append 해 준다
print(arr) # [30]
# num가 1이 될 때 까지 반복
while (num != 1):
# num가 짝수이면
if(num % 2 == 0):
# num를 2로 나누고
num = num / 2
# num를 arr에 넣어준다
arr.append(int(num))
# num가 홀수이면
elif(num % 2 != 0):
# num를 3배한 후, 1을 더하고
num = num * 3 + 1
# num를 arr에 넣어준다
arr.append(int(num))
print(arr) # [30, 15, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
int()를 이용해서 숫자나 문자열을 정수형 (Integer)으로 변환할 수 있음
# 숫자 배열문제
# 숫자들의 배열이 주어짐 이 배열은 길이 n을 가지며, 1부터 n-1까지의 숫자로 이루어져있음
# 모든 숫자가 배열에 단 한번씩만 나타남, 딱 하나의 수가 배열에 두번 등장
# 중복되는 숫자를 찾아내기
arr = [1,5,2,4,5,6,3]
# sort()함수를 통해 숫자의 배열을 정렬해 줌
arr.sort()
print(arr) # [1, 2, 3, 4, 5, 5, 6]
# 배열을 순차적으로 반복
for i in range(len(arr) -1):
# 현재값과 다음값이 같다면 리턴
if(arr[i] == arr[i+1]):
return arr[i] # 5