programing

Python에서 어레이를 선언하려면 어떻게 해야 합니까?

javaba 2022. 9. 30. 10:50
반응형

Python에서 어레이를 선언하려면 어떻게 해야 합니까?

Python에서 어레이를 선언하려면 어떻게 해야 합니까?

variable = []

, 이제variable는 빈 목록을* 나타냅니다.

물론 이것은 임무이지 선언서가 아니다.Python은 동적으로 입력되기 때문에 Python에서는 "이 변수는 목록 이외의 것을 참조해서는 안 된다"고 말할 수 없습니다.


*기본 내장 Python 유형은 배열이 아닌 목록이라고 합니다.이 컨테이너는 임의의 길이의 정렬된 컨테이너로 이기종 오브젝트 컬렉션을 저장할 수 있습니다(타입은 중요하지 않고 자유롭게 혼합할 수 있습니다).이것은 C에 가까운 타입을 제공하는 모듈과 혼동해서는 안 됩니다.array라고 입력합니다. 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아.

이것은 Python에서는 놀라울 정도로 복잡한 주제입니다.

실용적인 답변

은 등급으로 됩니다.list(참조를 참조하고 제너레이터와 혼합하지 마십시오).

사용 예를 확인해 주세요.

# empty array
arr = [] 

# init with values (can contain mixed types)
arr = [1, "eels"]

# get item by index (can be negative to access end of array)
arr = [1, 2, 3, 4, 5, 6]
arr[0]  # 1
arr[-1] # 6

# get length
length = len(arr)

# supports append and insert
arr.append(8)
arr.insert(6, 7)

이론적 답변

Python Python's Fython's Featon'의 후드 아래list는 항목에 대한 참조를 포함하는 실제 배열의 래퍼입니다.또한 기본 어레이는 여유 공간을 사용하여 생성됩니다.

그 결과는 다음과 같습니다.

  • 저렴하다(랜덤 액세스).arr[6653]와 같다arr[0])
  • append이지만, 여분의 .
  • insert가 많이 들다

이 놀라운 운영 복잡성 를 확인하십시오.

또, 어레이, 레퍼런스 어레이, 링크 리스트의 가장 중요한 차이를 나타내려고 하고 있는 이 그림을 참조해 주세요.

실제로 선언하는 것은 아니지만 Python에서 어레이를 작성하는 방법은 다음과 같습니다.

from array import array
intarray = array('i')

자세한 내용은 http://docs.python.org/library/array.html 어레이 모듈을 참조하십시오.

어레이가 아니라 리스트가 필요하지만 이미 다른 사용자가 이에 응답했습니다.:)

처음 30개의 셀이 이미 채워진 목록을 원하는 것 같습니다.그렇게

   f = []

   for i in range(30):
       f.append(0)

이를 사용할 수 있는 예로는 피보나치 시퀀스를 들 수 있습니다.프로젝트 오일러의 문제 2 참조

다음과 같습니다.

my_array = [1, 'rebecca', 'allard', 15]

계산에는 다음과 같은 numpy 배열을 사용합니다.

import numpy as np

a = np.ones((3,2))        # a 2D array with 3 rows, 2 columns, filled with ones
b = np.array([1,2,3])     # a 1D array initialised using a list [1,2,3]
c = np.linspace(2,3,100)  # an array with 100 points beteen (and including) 2 and 3

print(a*1.5)  # all elements of a times 1.5
print(a.T+b)  # b added to the transpose of a

이러한 numpy 어레이는 디스크에서 저장 및 로딩(압축도 가능)할 수 있습니다.또한 대량의 요소를 사용한 복잡한 계산은 C와 같은 속도로 이루어집니다.

과학 환경에서 많이 사용됩니다.자세한 내용은 여기를 참조해 주세요.

JohnMachin의 코멘트가 진짜 답이어야 한다.다른 답은 모두 회피책일 뿐이라고 생각합니다!그래서:

array=[0]*element_count

python의 배열은 목록으로 표현된다는 몇 가지 기여가 있습니다. Python하고 있습니다.array() 모듈 arrayarray.array()이치노릇을 하다목록은 python의 목록이므로 사용하는 명명법에 주의하십시오.

list_01 = [4, 6.2, 7-2j, 'flo', 'cro']

list_01
Out[85]: [4, 6.2, (7-2j), 'flo', 'cro']

과 목록 사이에는 가 한 .array.array(). 순서부여된array.는 비동종시퀀스입니다 이들 오브젝트는 모두 순서부여된 시퀀스이지만 array.array()는 순서부여된 동종시퀀스이며 리스트는 비동종시퀀스입니다.

Python에서는 아무것도 선언하지 않습니다.그냥 쓰세요.http://diveintopython.net 같은 것부터 시작할 것을 권장합니다.

저는 보통 이렇게 해요.a = [1,2,3] '아예'입니다.listarrays이 정식 정의를 보세요

Lennart의 답변을 추가하기 위해 다음과 같은 배열이 생성될 수 있습니다.

from array import array
float_array = array("f",values)

여기서 은 tuple, list 또는 np.array 형식을 사용할 수 있지만 배열 형식은 사용할 수 없습니다.

values = [1,2,3]
values = (1,2,3)
values = np.array([1,2,3],'f')
# 'i' will work here too, but if array is 'i' then values have to be int
wrong_values = array('f',[1,2,3])
# TypeError: 'array.array' object is not callable

출력은 그대로입니다.

print(float_array)
print(float_array[1])
print(isinstance(float_array[1],float))

# array('f', [1.0, 2.0, 3.0])
# 2.0
# True

목록의 대부분의 메서드는 어레이에서도 동작합니다.일반적인 메서드는 pop(), extend() 및 append()입니다.

답변과 코멘트로 미루어 볼 때 어레이 데이터 구조는 그다지 인기가 없는 것 같습니다.목록보다 태플을 더 좋아하는 것처럼 나도 좋아.

어레이 구조에는 목록이나 np.array보다 엄격한 규칙이 있으며, 이를 통해 오류를 줄이고 디버깅을 쉽게 할 수 있습니다. 특히 수치 데이터를 사용할 때 그렇습니다.

플로트를 int 어레이에 삽입/추가하려고 하면 TypeError가 발생합니다.

values = [1,2,3]
int_array = array("i",values)
int_array.append(float(1))
# or int_array.extend([float(1)])

# TypeError: integer argument expected, got float

따라서 배열 형식에서 정수(예를 들어 인덱스 목록)인 값을 유지하면 배열이 np.array 및 목록과 마찬가지로 반복될 수 있으므로 "TypeError: 목록 인덱스는 부동이 아닌 정수여야 합니다"를 방지할 수 있습니다.

int_array = array('i',[1,2,3])
data = [11,22,33,44,55]
sample = []
for i in int_array:
    sample.append(data[i])

int를 플로트 배열에 추가하면 예외 없이 int가 플로트가 됩니다.

np.array는 엔트리에 대해서도 동일한 데이터 유형을 유지하지만 오류를 발생시키는 대신 데이터 유형을 새 엔트리에 맞게 변경합니다(일반적으로 double 또는 str).

import numpy as np
numpy_int_array = np.array([1,2,3],'i')
for i in numpy_int_array:
    print(type(i))
    # <class 'numpy.int32'>
numpy_int_array_2 = np.append(numpy_int_array,int(1))
# still <class 'numpy.int32'>
numpy_float_array = np.append(numpy_int_array,float(1))
# <class 'numpy.float64'> for all values
numpy_str_array = np.append(numpy_int_array,"1")
# <class 'numpy.str_'> for all values
data = [11,22,33,44,55]
sample = []
for i in numpy_int_array_2:
    sample.append(data[i])
    # no problem here, but TypeError for the other two

이것은 과제 수행 중에도 해당됩니다.데이터 유형을 지정하면 np.array는 가능한 경우 엔트리를 해당 데이터 유형으로 변환합니다.

int_numpy_array = np.array([1,2,float(3)],'i')
# 3 becomes an int
int_numpy_array_2 = np.array([1,2,3.9],'i')
# 3.9 gets truncated to 3 (same as int(3.9))
invalid_array = np.array([1,2,"string"],'i')
# ValueError: invalid literal for int() with base 10: 'string'
# Same error as int('string')
str_numpy_array = np.array([1,2,3],'str')
print(str_numpy_array)
print([type(i) for i in str_numpy_array])
# ['1' '2' '3']
# <class 'numpy.str_'>

또는 본질적으로는 다음과 같습니다.

data = [1.2,3.4,5.6]
list_1 = np.array(data,'i').tolist()
list_2 = [int(i) for i in data]
print(list_1 == list_2)
# True

어레이는 다음과 같은 기능을 제공합니다.

invalid_array = array([1,2,3.9],'i')
# TypeError: integer argument expected, got float

따라서 유형별 명령어에는 np.array를 사용하는 것이 좋습니다.배열 구조는 여기서 유용합니다.list는 값의 데이터 유형을 유지합니다.

데이터 타입은 array()의 첫 번째 인수로 지정되지만 (보통) np.array()의 두 번째 인수로 지정됩니다.:|

C와의 관계는 여기서 참조됩니다.Python List vs. 어레이 - 언제 사용합니까?

즐거운 탐험 되세요!

주의: 배열의 유형적이고 다소 엄격한 성질은 Python보다는 C에 더 기울어져 있으며, 설계상 Python은 그 기능에서 유형별 제약이 많지 않습니다.이러한 비인기 때문에 협업 작업에서도 긍정적인 피드백을 얻을 수 있으며, 이를 대체하려면 대부분 추가 [파일 내 x에 대한 int(x)]가 필요합니다.따라서 배열의 존재를 무시하는 것은 전적으로 실행 가능하고 합리적입니다.어떤 식으로든 우리 모두를 방해해서는 안 됩니다. : D

이건 어때...

>>> a = range(12)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
>>> a[7]
6

Lennart에 이어 균일한 다차원 어레이를 구현하는 numpy도 있습니다.

Python은 그것들을 목록이라고 부른다.목록 리터럴은 대괄호 및 쉼표로 쓸 수 있습니다.

>>> [6,28,496,8128]
[6, 28, 496, 8128]

문자열 배열이 있었고 True로 시작하는 같은 길이의 부울 배열이 필요했습니다.이게 내가 한 일이야

strs = ["Hi","Bye"] 
bools = [ True for s in strs ]

목록을 생성하여 어레이로 변환하거나 numpy 모듈을 사용하여 어레이를 생성할 수 있습니다.다음은 동일한 예를 보여 주는 몇 가지 예입니다.또한 Numpy는 다차원 어레이로 작업하기 쉽게 합니다.

import numpy as np
a = np.array([1, 2, 3, 4])

#For custom inputs
a = np.array([int(x) for x in input().split()])

또한 입력값을 행렬의 치수로 받아들이는 재형성 함수를 사용하여 이 배열을 2X2 행렬로 재구성할 수도 있습니다.

mat = a.reshape(2, 2)
# This creates a list of 5000 zeros
a = [0] * 5000  

배열과 마찬가지로 [n] 표기로 이 목록의 모든 요소를 읽고 쓸 수 있습니다.

어레이와 같은 랜덤액세스 퍼포먼스를 가지는 것 같습니다.필요에 따라 문자열과 오브젝트 등 다양한 유형의 혼합도 지원하므로 메모리를 어떻게 할당하는지는 알 수 없습니다.

언급URL : https://stackoverflow.com/questions/1514553/how-do-i-declare-an-array-in-python

반응형