자바스크립트
1. 싱글 스레드 = 하나의 힙 영역과 하나의 콜스택을 가짐. 하나의 콜스택은 요청을 보내고 응답이 올때까지 다른 일을 하지 못하고 기다려야 한다는 것을 말함.

2. 콜 스택 = 함수가 실행되는 순서를 기억하고 있음. LIFO 후입 선출임.

3. Web API = 브라우저와 함께 제공되며 HTTP 전송, setTimeout, DOM Event 등과 같은 다양한 작업을 제공해준다. 또한 브라우저에서 캐싱 또는 데이터베이스 저장소를 사용할 수 이쎅 해줌. ex) 개발자 도구에 window
Web API를 사용하여 백그라운드에서 비동기적으로 작업을 처리할 수 있고, 작업이 끝나면 v8(콜스택)에게 해당 작업이 끝났음을 알려준다.

4. 이벤트 루프와 콜백 큐 
- Web API 에서 제공해주는 것들은 콜 스택에 담기지 않고 Web API가 자체적으로 처리한 뒤 콜백 큐로 전달한다.
- 콜백 큐로 전달된 작업들은 콜 스택이 비어있을 경우에만 콜 스택으로 이동 시키는 데 이때 이벤트 루프가 콜 스택이 비어있는지 주기적으로 확인하고 작업을 이동 시킨다.

 

strpos()

- 문자열 중에 단어가 포함되어 있는지 검사하는 함수.
- 없으면 false 있으면 정수 반환
- 0으로 반환 될 수 있으므로 === 를 사용하여 비교할 것.

$test = '하나둘셋넷다섯여섯';
$tmp1 = strpos($test,'나둘');
$tmp2 = strpos($test, '다섯여섯');
$tmp3 = strpos($test, 'zz');

echo $tmp1 . " " . $tmp2 . " " . $tmp3;

 

explode()

- 문자열을 원하는 값으로 분리하여 배열에 저장하는 함수.

$test = '하나-둘-셋-넷-다섯';

$tempArr = explode('-', $test);

//tempArr = ['하나', '둘', '셋', '넷', '다섯'] 와 같이 들어가게 됨.

 

입출력 속도 비교 : sys.stdin.readline > raw_input() > input()

import sys # sys.stdin.readline을 사용하기 위해
"""
한줄 입력 받기
"""
a = input() 
a = sys.stdin.readline().

# input을 sys.stdin.readline으로 바꾼 것이고 같은 역할을 한다.
# sys.stdin.readline().split() 사용 가능 

"""
여러줄 입력 받기
"""
for line in sys.stdin:
    print(line)
# 여러줄 입력 받을땐 sys.stdin 사용

 

'프로그래밍언어 > Python' 카테고리의 다른 글

String  (0) 2020.08.19
함수들  (0) 2020.08.18
set()  (0) 2020.07.27
sorted  (0) 2020.07.22
리스트  (0) 2020.07.15

Find와 Index 함수 사용 예시

a = "asdzxca"

a.index("a") // 가장 최신 위치 인덱스 값 출력
a.find("a") // index함수와 같음.

a.index("b") # b가 문자열에 포함되어 있지않아 ValueError 리턴.
a.find("b") # b가 포함되어 있지 않아 -1 리턴.

 

'프로그래밍언어 > Python' 카테고리의 다른 글

입출력 sys.stdin.readline()  (0) 2020.08.20
함수들  (0) 2020.08.18
set()  (0) 2020.07.27
sorted  (0) 2020.07.22
리스트  (0) 2020.07.15

ord - 아스키코드로 변환해 줌.

print(ord("a"))
# 아스키코드로 변환되어 97 출력 됨.

 

'프로그래밍언어 > Python' 카테고리의 다른 글

입출력 sys.stdin.readline()  (0) 2020.08.20
String  (0) 2020.08.19
set()  (0) 2020.07.27
sorted  (0) 2020.07.22
리스트  (0) 2020.07.15
  • 집합 객체이다.
  • 중복을 허용하지 않는다.
  • 순서가 없다(Unordered).
s1 = set([1,2,3])
print(s1)
// {1, 2, 3}

s2 = set("Hello")
print(s2)
// {'e', 'H', 'l', 'o'}

 

add, update, remove 함수

s1 = set([1, 2, 3])
s1.add(4)
print(s1)
// {1, 2, 3, 4}

s1.update([4,5,6])
print(s1)
// {1,2,3,4,5,6}

s1.remove(2)
print(s1)
// {1,3,4,5,6}

'프로그래밍언어 > Python' 카테고리의 다른 글

입출력 sys.stdin.readline()  (0) 2020.08.20
String  (0) 2020.08.19
함수들  (0) 2020.08.18
sorted  (0) 2020.07.22
리스트  (0) 2020.07.15

list.sort()와 sorted의 다른 점은 sorted는 정렬된 새로운 리스트를 반환 함.

a = [5, 2, 3, 1, 4]
a.sort()
a
[1, 2, 3, 4, 5]
sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]

sorted(list, key="") 각 리스트 요소에 대해 호출할 함수를 지정하는 key 매개 변수

student_tuples = [
    ('john', 'A', 15),
    ('jane', 'B', 12),
    ('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2])   # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

key = lambda student: student[2] 에서 student[2]는 student_tuples의 2 인덱스 값 기준으로 정렬함.

'프로그래밍언어 > Python' 카테고리의 다른 글

입출력 sys.stdin.readline()  (0) 2020.08.20
String  (0) 2020.08.19
함수들  (0) 2020.08.18
set()  (0) 2020.07.27
리스트  (0) 2020.07.15
  • 리스트와 문자열의 다른 점은 리스트는 가변적이고 문자열을 불변이다. 그리하여 list+[1,2,4,5]와 같이 사용할 수 있다.

list.append(x)

리스트의 끝에 항목을 더합니다. a[len(a):] = [x] 와 동등합니다.

list.extend(iterable)

리스트의 끝에 이터러블의 모든 항목을 덧붙여서 확장합니다. a[len(a):] = iterable 와 동등합니다.

list.insert(i, x)

주어진 위치에 항목을 삽입합니다. 첫 번째 인자는 삽입되는 요소가 갖게 될 인덱스입니다. 그래서 a.insert(0, x) 는 리스트의 처음에 삽입하고, a.insert(len(a), x)  a.append(x) 와 동등합니다.

list.remove(x)

리스트에서 값이 x 와 같은 첫 번째 항목을 삭제합니다. 그런 항목이 없으면 ValueError를 일으킵니다.

list.pop([i])

리스트에서 주어진 위치에 있는 항목을 삭제하고, 그 항목을 돌려줍니다. 인덱스를 지정하지 않으면, a.pop() 은 리스트의 마지막 항목을 삭제하고 돌려줍니다. (메서드 시그니처에서 i 를 둘러싼 대괄호는 매개변수가 선택적임을 나타냅니다. 그 위치에 대괄호를 입력해야 한다는 뜻이 아닙니다. 이 표기법은 파이썬 라이브러리 레퍼런스에서 지주 등장합니다.)

list.clear()

리스트의 모든 항목을 삭제합니다. del a[:] 와 동등합니다.

list.index(x[, start[, end]])

리스트에 있는 항목 중 값이 x 와 같은 첫 번째 것의 0부터 시작하는 인덱스를 돌려줍니다. 그런 항목이 없으면 ValueError 를 일으킵니다.

선택적인 인자 start  end 는 슬라이스 표기법처럼 해석되고, 검색을 리스트의 특별한 서브 시퀀스로 제한하는 데 사용됩니다. 돌려주는 인덱스는 start 인자가 아니라 전체 시퀀스의 시작을 기준으로 합니다.

list.count(x)

리스트에서 x 가 등장하는 횟수를 돌려줍니다.

list.sort(key=None, reverse=False)

리스트의 항목들을 제자리에서 정렬합니다 (인자들은 정렬 커스터마이제이션에 사용될 수 있습니다. 설명은 sorted() 를 보세요).

list.reverse()

리스트의 요소들을 제자리에서 뒤집습니다.

list.copy()

리스트의 얕은 사본을 돌려줍니다. a[:] 와 동등합니다.

fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']

fruits.count('apple')
# 2
fruits.count('tangerine')
# 0

fruits.index('banana')
# 3
fruits.index('banana', 4)  # Find next banana starting a position 4
# 6

fruits.reverse()
fruits
# ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']

fruits.append('grape')
fruits
# ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']

fruits.sort()
fruits
# ['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']

fruits.pop()
# 'pear'

리스트를 사용하여 스택과 큐를 구현할 수 있다고 한다. 다음에는 리스트를 사용하는 스택과 큐에 대해 공부할 예정이다.

출처:https://docs.python.org/ko/3/tutorial/datastructures.html

리스트 변환

a = "asd"
b = [1,2,3]
temp_a = list(a)
temp_b = list(map(str, b))

# temp_a = ["a","s","d"]로 변환 됨.
# temp_b = ['1','2','3']으로 변환 됨.

print(' '.join(temp_a))
# a s d가 출력

'프로그래밍언어 > Python' 카테고리의 다른 글

입출력 sys.stdin.readline()  (0) 2020.08.20
String  (0) 2020.08.19
함수들  (0) 2020.08.18
set()  (0) 2020.07.27
sorted  (0) 2020.07.22

+ Recent posts