파이썬의 목록은 대괄호 []
으로 둘러싸여 있음을 알고 있습니다.이 목록에는 파이썬에 포함 된 내용 또는 목록이 있습니까?
[(451,165,76,-77,[98,42])]
이 튜플의 목록입니다
나는 다음과 같은 무언가를보고 출력을했다? 우리는 어떻게 항목에 접근 할 수 있습니까?감사합니다.
파이썬의 목록은 대괄호 []
으로 둘러싸여 있음을 알고 있습니다.이 목록에는 파이썬에 포함 된 내용 또는 목록이 있습니까?
[(451,165,76,-77,[98,42])]
이 튜플의 목록입니다
나는 다음과 같은 무언가를보고 출력을했다? 우리는 어떻게 항목에 접근 할 수 있습니까?감사합니다.
그냥 그것을 터미널에서 시도해, 모든 자기 설명이다 : 출력 목록처럼 보인다해서, 어쨌든
>>> x = [(451,165,76,-77,[98,42])]
>>> type(x)
<type 'list'>
>>> x[0]
(451, 165, 76, -77, [98, 42])
>>> x[0][1]
165
>>> x[0][4]
[98, 42]
>>> type(x[0][4])
<type 'list'>
>>> x[0][4][1]
42
, 그것은 필요로하지 않는다 목록으로. 그것은
하나의 튜플을 포함하는 목록입니다.이 튜플에는 5 개의 요소가 포함되며 그 중 하나는 테이블입니다. 액세스에
:
a=[(451,165,76,-77,[98,42])]
a[0][0][2]
76
a[0][0][4][0]
이것은 integers
로서 처음 네 개의 요소들을 가지는 tuple
마지막 element
함유 list
인 98
반환 반환 list
은 2
integers
입니다. .
indexing
에 의해 모든 값에 올바르게 액세스 할 수 있습니다. 다음은 몇 가지 예는 다음과 같습니다
>>> l = [(451,165,76,-77,[98,42])]
>>> l[0]
(451, 165, 76, -77, [98, 42])
>>> l[0][0]
451
>>> l[0][1]
165
>>> l[0][3]
-77
>>> l[0][4]
[98, 42]
>>> l[0][4][0]
98
>>> l[0][4][1]
42
예, 그것은 하나 소자를 포함하는리스트이다 (자세한 내용 https://docs.python.org/3/reference/datamodel.html#object.str 참조) __str__()
또는 __repr__()
과부하에 의해 인쇄 할 방법을 지정하는 더 복잡한 데이터 구조 (일부 사용자 정의 된 클래스의 객체를 할 수있다). 그리고 당신이 정확히 언급했듯이이 요소는 튜플입니다. 이 경우에는 마지막 요소가리스트이기도하기 때문에 튜플이 사용됩니다 (튜플은 이질적인 데이터를 저장하는 데 적합합니다).
예, 튜플의 목록입니다.
a[0][0] #> 451
을 그리고 튜플의 마지막 항목은 목록은 다음과 같습니다 :
a = [(451,165,76,-77,[98,42])]
type(a) #> list
type(a[0]) #> tuple
이 같은 튜플의 첫 번째 항목에 액세스 할
a[0][4] #> [98, 42]
와의 요소에 액세스 할 수 그 목록에 다른 괄호 레이어를 추가하면됩니다.
a[0][4][0] #> 98
그래서 우리는 데이터를 문자열로 출력 할 때 데이터 형식에 대해서만 추측 할 수 있기 때문에 잠시 후 형식 검사기를 써주었습니다. 우리가 알기로는 str()
을 주어진 것으로 선택하는 Person
또는 Frombulate
유형의 객체 일 수 있습니다.기본 파이썬 개체가 귀하의 의견에 제공을 위해,
def type_diver(obj, prefix="", index = ""):
print "%s'%s': %s%s" % (prefix, obj, type(obj), " - Accessible via " + index if index else "")
if not isinstance(obj, str):
try:
for ind, elem in enumerate(obj):
type_diver(elem, " " * len(prefix) + "|---", index + "[%s]" % ind)
except TypeError:
pass # Don't call recursively on non-iterable objects
:
'[(451, 165, 76, -77, [98, 42])]': <type 'list'>
|---'(451, 165, 76, -77, [98, 42])': <type 'tuple'> - Accessible via [0]
|---'451': <type 'int'> - Accessible via [0][0]
|---'165': <type 'int'> - Accessible via [0][1]
|---'76': <type 'int'> - Accessible via [0][2]
|---'-77': <type 'int'> - Accessible via [0][3]
|---'[98, 42]': <type 'list'> - Accessible via [0][4]
|---'98': <type 'int'> - Accessible via [0][4][0]
|---'42': <type 'int'> - Accessible via [0][4][1]
하지만 str()
출력처럼 보이는 사용자 정의 클래스를 작성할 수 있습니다. 알아야 할 유일한 방법은 물어 보는 것입니다. 데이터가 hpaulj suggested [A NumPy와 배열] 같은 경우
, 당신은 같은 것을 볼 수 있습니다 : 그들은 입력에 관심이있는 다른 개체를해야합니다
'[(451, 165, 76, -77, [98, 42])]': <type 'numpy.ndarray'>
|---'(451, 165, 76, -77, [98, 42])': <type 'numpy.void'> - Accessible via [0]
|---'451': <type 'numpy.int32'> - Accessible via [0][0]
|---'165': <type 'numpy.int32'> - Accessible via [0][1]
|---'76': <type 'numpy.int32'> - Accessible via [0][2]
|---'-77': <type 'numpy.int32'> - Accessible via [0][3]
|---'[98 42]': <type 'numpy.ndarray'> - Accessible via [0][4]
|---'98': <type 'numpy.int32'> - Accessible via [0][4][0]
|---'42': <type 'numpy.int32'> - Accessible via [0][4][1]
을 감안할 때 모두,이보다 일반적인 솔루션입니다. 그러나 반복 가능한 객체 만 조사합니다.
는'obj = [None]; 실패합니다. obj [0] = obj; type_diver (obj)': P – timgeb
오류 처리를 원하는만큼 추가하십시오. 그것은 그것의 목적을 잘 제공합니다. – TemporalWolf
똑바로 앞으로 나오는 파이썬 설명은 정수와 목록을 포함하는 튜플이있는 목록이지만 디스플레이는 numpy
구조화 된 배열과도 일치합니다.
In [596]: dt = np.dtype('i,i,i,i,(2)i')
In [597]: dt
Out[597]: dtype([('f0', '<i4'), ('f1', '<i4'), ('f2', '<i4'), ('f3', '<i4'), ('f4', '<i4', (2,))])
이 목록 입력 된 배열합니다
은 화합물 DTYPE 정의. 복합 dtype (구조화 된 배열)의 데이터는 튜플 목록 형식입니다. 이 배열의
In [598]: arr = np.array([(451,165,76,-77,[98,42])], dtype=dt)
In [599]: arr
Out[599]:
array([(451, 165, 76, -77, [98, 42])],
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<i4'), ('f3', '<i4'), ('f4', '<i4', (2,))])
인쇄 그냥 질문과 같습니다 :
는In [600]: print(arr)
[(451, 165, 76, -77, [98, 42])]
이 5 개 필드 1 개 요소 배열 각 튜플은 배열의 기록 또는 요소의 데이터를 나타냅니다. 마지막 필드는 shape (2,)를 가지며 사실상 2 요소 배열입니다.
In [601]: arr['f4']
Out[601]: array([[98, 42]], dtype=int32)
In [602]: _.shape
Out[602]: (1, 2)
이것은 일종의 상황이다. 나는 내 대답에 형식 검사기를 사용할 것이다. 문자열로 출력 할 때 데이터 형식에 대해서만 추측 할 수있다. 나는 당신이 당신의 추측에 맞을 것으로 생각하지만, op 태그가'numpy'라고합니다. – TemporalWolf
정확히 출력은 어디서 발생합니까? 'numpy' 태그를 선택 했으므로 그게 간단하다면 궁금합니다. – Pavel
왜이 태그는'numpy'와'arrays'로 태그되어 있습니까? –