>>> a = [1, 2, [3, 4], 5]
>>> print(len(a))
4
목록의 길이는 4이고, 요소 수는 4이고 5가 아닌 이유는 무엇입니까?또한 목록을 포함하는 목록이있는 요소의 수를 계산하십시오.
>>> a = [1, 2, [3, 4], 5]
>>> print(len(a))
4
목록의 길이는 4이고, 요소 수는 4이고 5가 아닌 이유는 무엇입니까?또한 목록을 포함하는 목록이있는 요소의 수를 계산하십시오.
외측리스트의 요소 수가 4 a[2]
는 하나의 오브젝트이다. 한 개체가 목록이기도 한 것은 중요하지 않습니다. 당신이 요소 반복적으로의 수를 계산해야하는 경우
, 다음 자신 그렇게 :
는def recursive_element_count(ob):
if isinstance(ob, list):
return sum(recursive_element_count(elem) for elem in ob)
# anything that isn't a list counts as one element
return 1
데모 : 하나의 객체로 가정 내부 목록으로
>>> def recursive_element_count(ob):
... if isinstance(ob, list):
... return sum(recursive_element_count(elem) for elem in ob)
... return 1
...
>>> a = [1, 2, [3, 4], 5]
>>> recursive_element_count(a)
5
@MartijnPieters 왜 마지막에'return 1'을 추가할까요? –
@AvinashRaj : 각 비 목록 요소는 1 개의 항목으로 계산되기 때문입니다. –
len
4를 반환 . 체크 객체의 유형에 사용
>>> a = [1, 2, [3, 4], 5]
>>> sum(len(i) if isinstance(i,list) else 1 for i in a)
5
isinstance()
기능 : 모든 요소의 길이를 계산하기 위해 다음과 같은 코드를 사용할 수 있습니다.
다른 레벨의 중첩이 있으면이 대답은 작동하지 않습니다. –
@MartijnPieters 예, 분명히, 우리는 다른 레버를위한 재귀 함수로 그것을 할 수 있습니다. – Kasramvd
수학에서 집합을 아십니까? 파이썬에서는리스트와 튜플 세트 등에서 비슷합니다. 튜플 등의리스트 나 튜플에리스트가있는 경우 등, 그것들은 하나의 요소입니다.
a=[1,2,3]
b=[2,3]
a.append(b)
print (a)
print (len(a))
출력 :
>>>
[1, 2, 3, [2, 3]]
4
>>>
한게 때문에 LEN (a) = 4. [2,3]은 list(a)
의 요소입니다.
@nbro 의미가 필요하지 않습니다. – meda
@meda'mean'? 누구? 농담하는 걸 들어 본 적 없니? 나는 항상 농담을하고 있습니다. – nbro
새로운 것들을 배우면서 우리 모두는 이렇게 생각합니다. –