컴퓨터에 대해서... 내 코드는 어떻게 돌아갈까
생각해봤고, 운영체제에 대한 네트워크에 대한 공부들도 조금씩 했습니다
그 중에서도 가장 기본이 되는 프로세스, 스레드
이러한 프로세스의 자원 할당하고, 회수 하는데 발생하는 Context Switching
Context Switching의 발생 때문에 생기는 메모리의 손실을
최소화 하기위한 여러 가지 스케쥴링 방법들, 거기에 사용되는 알고리즘
그리고 파이썬의 내장함수에 대해서 다시 한번 보는 시간을 가졌습니다
많은 내장함수들이 존재하고, 라이브러리가 존재 하는데
오늘은 그중에서 Slicing과 enumerate에 대해서 자세히 알아봤습니다
리스트나 튜플형태의 연속적인 객체들을 잘라서 가지고 오는 방법
기본적인 사용 법은
list[start, end, step]
이런식으로 사용이 됩니다
start는 첫 시작점을 뜻하고,
end는 슬라이싱한 배열의 마지막 부분을
step은 밑에 사진으로 설명 하겠습니다
s = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[::2])
print(s[::3])
print(s[::4])
각 숫자간의 간격을 뜻하는데,
2일 경우 한칸뛰고 다음 숫자를
3일 경우 두칸을 건너뛰고 다음 숫자를
.
.
.
s = []
s[-1:]
이런식으로 빈배열에 사용을 해도 IndexError가 발생하지 않습니다.
리스트에서 s[-1] 이런형식으로 음수가 들어오게 되면
뒤에서 부터 객체를 가지고 옵니다.
s = [1, 2, 3, 4, 5]
print(s[-1])
print(s[:-1])
print(s[::-1])
제일 끝에서 부터 하나씩 가지고 오게 되고,
end 부분에 음수를 넣게되면 앞에서 부터 가지고 옵니다
만약에 step 부분이 음수가 되면 반대 부터 가지고 옵니다
좀 더 활용해서 사용해 본다면
s = [1, 2, 3, 4, 5]
print(s[1:2:])
start의 경우 우리가 평소 사용하는 배열의 0번부터 가지고 온다고
생각 하면되고, end의 경우 일상생활에서 사용하는 숫자로 생각하면 됩니다
반복문에 흔히 사용되는 함수
각각의 배열에 index, 즉 번호를 붙여주는 함수
s = [1, 2, 3, 4, 5]
for i in enumerate(s):
print(i)
각각 튜플의 형태로 반환하게 됩니다.
또한 둘을 나눠서 표기하고 싶다면
for index, value in enumerate(s):
print(index, value)
이런식으로 각각 나누어서 활용도 가능합니다
오늘 공부한 내용은 다시 한번 더 보면서 내가 놓친 부분
내가 알면서도 사용하지 못한점을 생각하면서 보니까
좀 더 꼼꼼하게 확인하면서 공부 했습니다