# replace, len, sort, sorted, range, map, split, isdigit

## replace

문자열에서 지정된 부분 문자열을 다른 문자열로 대체하는 메서드

```plaintext
str.replace(교체하고싶은 문자열, 교체할 문자열, 변경할 횟수)
```

---

## len

문자열의 길이를 반환하는 함수

```plaintext
len()
```

---

## sort

리스트 자체를 정렬하는 함수. 원래의 리스트를 변경

```plaintext
numbers = [3, 2, 1]
numbers.sort()
print(numbers)       # [1, 2, 3]
```

## sorted

원래의 리스트에는 영향을 주지 않고, 정렬된 새로운 리스트를 반환

```plaintext
numbers = [3, 2, 1]
new_numbers = sorted(numbers)
print(new_numbers)    # [1, 2, 3]
print(numbers)    # [3, 2, 1]
```

두 함수 모두 기본적으로 오름차순으로 정렬한다.  
내림차순으로 정렬하려면 `reverse=True` 인자를 추가하면 된다.

*원래의 리스트를 변경하고 싶지 않다면 sorted  
원래의 리스트 자체를 정렬하려면 sort*

---

## range

일련의 숫자를 생성하는데 사용되는 함수  
보통 반복문인 for문과 함께 사용된다.

#### 1\. range(n)

0부터 시작해서 n-1 까지의 숫자를 생성

`range(5)`라고 하면 0부터 4까지 총 5개 (0, 1, 2, 3, 4) 생성

#### 2\. range(start, stop)

start부터 시작해서 stop-1 까지의 숫자를 생성

`range(2, 5)`라고 하면 2부터 4까지 총 3개 (2, 3, 4) 생성

#### 3\. range(start, stop, step)

start부터 시작해서 stop-1 까지의 숫자를 생성하지만, step만큼 숫자를 건너뛴다.

`range(1, 10, 2)`라고 하면 1부터 9까지 중 홀수인 숫자 (1, 3, 5, 7, 9) 생성

---

## map

지정된 함수를 모든 반복가능한 항목에 적용한다.

```plaintext
map(함수, 리스트)
```

예를들어 리스트의 모든 요소를 정수로 변환하려면 아래처럼 가능하다.

```plaintext
numbers = ['1', '2', '3', '4']
numbers = list(map(int, numbers))
```

이 코드를 실행하면 numbers 리스트는 \[1, 2, 3, 4\]로 변환된다.  
map 함수는 첫번째 인자로 두번째 인자를 받은 iterable의 각 요소에 적용한다.

---

## split

문자열을 특정 구분자를 기준으로 나누어 리스트로 반환

예를들어

```plaintext
text = "Hello, World!"
words = text.split(",")
```

이 코드를 실행하면 words 리스트는 \['Hello', 'World!'\]가 된다.

split 함수는 문자열에 대해 호출되며, 괄호안에는 구분자를 지정할 수 있다.  
구분자를 지정하지 않으면 공백을 기준으로 문자열을 나눈다.

---

## isdigit

문자열 메서드 중 하나로 해당 문자열이 숫자로만 이루어져 있는지 확인하는 함수

문자열이 숫자로 이루어져 있다면 True 반환

문자열에 숫자 이외의 문자(알파벳, 특수문자, 공백 등)가 포함되어 있다면 False 반환

음수를 뜻하는 -, 소수점을 뜻하는 . 이것도 문자로 판단하기 때문에 실수나 음수를  
판단하지 못한다.

```plaintext
"12345".isdigit()    # True
"1234a".isdigit()    # False
"12 34".isdigit()    # False
```
