programing

python(또는 특정 크기의 배열)에서 0 배열을 선언하는 방법

javaba 2022. 11. 25. 20:58
반응형

python(또는 특정 크기의 배열)에서 0 배열을 선언하는 방법

카운트 히스토그램을 작성하려고 합니다...양동이를 만듭니다.다음 행에 따라 여러 개의 0을 추가할 수 있습니다.

buckets = []
for i in xrange(0,100):
    buckets.append(0)

좀 더 우아한 방법이 없을까요?특정 크기의 배열을 선언하는 방법이 있어야 할 것 같아요.

numpy는 알고 있다.numpy.zeros하지만 나는 더 일반적인 해결책을 원한다.

buckets = [0] * 100

주의 - 이 기술은 다차원 배열이나 목록 목록에는 적용되지 않습니다.로 인해 하위 목록에 반영된 목록 변경 사항 목록이 예기치 않은 문제로 이어집니다.

완전성을 위해:python에서 0의 다차원 목록을 선언하려면 다음과 같은 목록 이해를 사용해야 합니다.

buckets = [[0 for col in range(5)] for row in range(10)]

행 간의 참조 공유를 방지합니다.

이것은 chester1000의 코드보다 서툴러 보이지만 나중에 값을 변경할 경우에는 필수적입니다.자세한 내용은 Python FAQ를 참조하십시오.

a를 곱할 수 있습니다.list정수 단위로n를 반복하다list n시간:

buckets = [0] * 100

사용방법:

bucket = [None] * 100
for i in range(100):
    bucket[i] = [None] * 100

또는

w, h = 100, 100
bucket = [[None] * w for i in range(h)]

둘 다 적절한 빈 다차원 버킷목록 100x100을 출력합니다.

numpy를 사용하다

import numpy
zarray = numpy.zeros(100)

그런 다음 히스토그램 라이브러리 기능을 사용합니다.

질문에는 "0의 배열을 선언하는 방법..."이라고 나와 있지만 샘플 코드는 Python 목록을 참조합니다.

buckets = []   # this is a list

다만, 실제로 어레이를 초기화하는 경우는, 다음과 같이 하는 것을 추천합니다.

from array import array

my_arr = array('I', [0] * count)

Python 순수론자는 이것이 비단뱀이 아니라고 주장하며 다음과 같이 제안할 수 있습니다.

my_arr = array('I', (0 for i in range(count)))

피토닉 버전은 매우 느리고 수천 개의 값을 사용하여 초기화할 수백 개의 배열이 있는 경우 차이가 눈에 띄게 나타납니다.

가장 간단한 해결책은

"\x00" * size # for a buffer of binary zeros
[0] * size # for a list of integer zeros

일반적으로 목록 이해와 같은 더 많은 피토닉 코드를 사용해야 합니다(예:[0 for unused in xrange(100)]) 또는 를 사용합니다.string.join버퍼를 지정합니다.

데이터가 수집된 후 실제로 어떤 작업을 수행하느냐에 따라 collections.defaultdict(int)가 유용할 수 있습니다.

저는 샘플 프로그램과 그 출력물을 게시하여 당신을 돕고 싶습니다.

프로그램:-

t=input("")

x=[None]*t

y=[[None]*t]*t

for i in range(1,t+1):

      x[i-1]=i;
      for j in range(1,t+1):
            y[i-1][j-1]=j;

print x

print y

출력:-

2

[1, 2]

[[1, 2], [1, 2]]

나는 이것으로 그들의 선언에 대한 당신의 매우 기본적인 개념이 명확해졌으면 좋겠다.다른 특정 값으로 초기화하려면 예를 들어 0으로 초기화해야 합니다.다음과 같이 선언할 수 있습니다.

x=[0]*10

도움이 되길..!;)

추가 열이 필요한 경우:

buckets = [[0., 0., 0., 0., 0.] for x in range(0)]

언급URL : https://stackoverflow.com/questions/4056768/how-to-declare-array-of-zeros-in-python-or-an-array-of-a-certain-size

반응형