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
'programing' 카테고리의 다른 글
Java에서 기본 액세스 수식자는 무엇입니까? (0) | 2022.11.25 |
---|---|
Java: 루프 초기화를 위해 에서 여러 변수를 초기화하시겠습니까? (0) | 2022.11.25 |
"이 페이지에서 벗어나시겠습니까?"를 표시하는 방법" 변경은 언제 커밋됩니까? (0) | 2022.11.05 |
프로젝트에서 MySQL과 Postgre를 모두 사용하는 경우 JsonStringType에서 JsonBinaryType으로 전환SQL (0) | 2022.11.05 |
HTTP 응답에서 JSON 개체 가져오기 (0) | 2022.11.05 |