English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 글에서, Python 배열, 배열과 리스트의 차이점, 그리고 어떻게 그리고 언제 사용할지에 대해 배울 것입니다.
프로그래밍에서, 배열은 같은 타입의 요소들이 모여 있는 집합입니다.
배열이 Java, C / C ++JavaScript 등 대부분의 프로그래밍 언어에서는 흔히 사용됩니다. 하지만 Python에서는 그리 흔하지 않습니다. Python 배열에 대해 이야기할 때, 그들은 Python 리스트를 이야기하고 있습니다. 만약 리스트가 무엇인지 모르신다면, 절대로 확인해야 할 것입니다.파이썬 리스트문서.
리스트를 배열로 볼 수 있습니다. 하지만, 리스트에 저장된 요소의 타입을 제한할 수는 없습니다. 예를 들어:
a = [1, 3.5, "Hello"]
array 모듈로 배열을 생성하면 배열의 모든 요소가 같은 숫자 타입이어야 합니다.
import array as arr a = arr.array('d', [1, 3.5, "Hello"]) // Error
위의 예제에서 짐작할 수 있듯이, 배열을 생성하기 위해 array 모듈을 가져오는 것이 필요합니다. 예를 들어:
import array as arr a = arr.array('d', [1.1, 3.5, 4.5]) print(a)
여기서 우리는 float형 배열을 생성했습니다. 문자 'd'는 타입 코드입니다. 이는 배열 생성 과정에서 배열의 타입을 결정합니다.
보통 사용되는 타입 코드:}
코드 | C 타입 | Python 타입 | 최소 바이트 |
---|---|---|---|
'b' | signed char | int | 1 |
'B' | unsigned char | int | 1 |
'u' | Py_UNICODE | Unicode | 2 |
'h' | signed short | int | 2 |
'H' | unsigned short | int | 2 |
'i' | signed int | int | 2 |
'I' | unsigned int | int | 2 |
'l' | signed long | int | 4 |
'L' | unsigned long | int | 4 |
'f' | float | float | 4 |
'd' | double | float | 8 |
에서 사용되지 않을 것입니다. 전체 문서에서 'i' 정수와 'd' 실수 타입 코드를 사용할 것입니다.
주의: 'u'는 버전3.3부터 시작하여, Unicode 문자 타입 코드는 사용하지 않습니다. 가능한 한 사용을 피하십시오.
배열의 요소에 접근하기 위해 인덱스를 사용합니다:
import array as arr a = arr.array('i', [2, 4, 6, 8]) print("첫 번째 요소:", a[0]) print("두 번째 요소:", a[1]) print("마지막 요소:", a[-1])
기억해야 할 것은 인덱스는 0에서 시작하며 (Unicode 문자의 타입 코드는 사용하지 않는 것이 좋습니다. 가능한 한 사용을 피하십시오.1)부터 시작하여 목록과 유사합니다.
배열의 일련의 항목에 접근할 수 있는 슬라이싱 연산자를 사용할 수 있습니다:。
import array as arr numbers_list = [2, 5, 62, 5, 42, 52, 48, 5] numbers_array = arr.array('i', numbers_list) print(numbers_array[2:5]) #3-第5개의 요소 print(numbers_array[:-5]) # 시작부터4개의 요소 print(numbers_array[5:]) #6개의 요소까지 print(numbers_array[:]) # 시작부터 끝까지
프로그램을 실행할 때, 출력은 다음과 같습니다:
array('i', [62, 5, 42]) array('i', [2, 5, 62]) array('i', [52, 48, 5]) array('i', [2, 5, 62, 5, 42, 52, 48, 5])
배열은 변경 가능합니다. 요소는 목록과 유사하게 변경할 수 있습니다.
import array as arr numbers = arr.array('i', [1, 2, 3, 5, 7, 10]) # 첫 번째 요소를 변경 numbers[0] = 0 print(numbers) # 출력: array('i', [0, 2, 3, 5, 7, 10]) # 제3부터5개의 요소 numbers[2:5]) = arr.array('i', [4, 6, 8]) print(numbers) # 출력: array('i', [0, 2, 4, 6, 8, 10])
append() 메서드를 사용하여 목록에 항목을 추가하거나 extend() 메서드를 사용하여 여러 항목을 목록에 추가할 수 있습니다.
import array as arr numbers = arr.array('i', [1, 2, 3]) numbers.append(4)) print(numbers) # 출력: array('i', [1, 2, 3, 4]) # extend()는 iterable를 배열의 마지막에 추가합니다 numbers.extend([5, 6, 7]) print(numbers) # 출력: array('i', [1, 2, 3, 4, 5, 6, 7])
우리는+연산자는 두 개의 배열을 연결합니다.
import array as arr odd = arr.array('i', [1, 3, 5]) even = arr.array('i', [2, 4, 6]) numbers = arr.array('i') # 빈 정수 배열 생성 numbers = odd + even print(numbers)
우리는파이썬의 del 문배열에서 하나나 여러 항목을 제거할 수 있습니다.
import array as arr number = arr.array('i', [1, 2, 3, 3, 4]) del number[2] # 세 번째 요소 제거 print(number) # 출력: array('i', [1, 2, 3, 4]) del number # 전체 배열 제거 print(number) # 에러: 배열이 정의되지 않았습니다
우리는 remove() 메서드를 사용하여 지정된 항목을 제거할 수 있으며, 또한 pop() 메서드를 사용하여 지정된 인덱스 위치의 항목을 제거할 수 있습니다.
import array as arr numbers = arr.array('i', [10, 11, 12, 12, 13]) numbers.remove(12)) print(numbers) # 출력: array('i', [10, 11, 12, 13]) print(numbers.pop(2)) # 출력: 12 print(numbers) # 출력: array('i', [10, 11, 13])
리스트는 배열보다 유연합니다. 다양한 데이터 타입의 요소를 저장할 수 있으며, 문자열도 포함됩니다. 그리고, 리스트는 배열보다 빠릅니다. 또한, 배열과 행렬에 수학적 계산을 수행해야 한다면, 가장 좋은 방법은NumPy라이브러리와 같은 메서드.
실제로 배열이 필요하다면(예: C 코드 인터페이스에서 배열 모듈이 필요할 수 있습니다) 그렇지 않으면 사용하지 마세요.