스택큐힙리스트

Python 관용구: 첫 번째 항목이나 None 반환 본문

카테고리 없음

Python 관용구: 첫 번째 항목이나 None 반환

스택큐힙리스트 2023. 4. 4. 08:54
반응형

나는 리스트를 반환하는 여러 메서드를 호출하고 있습니다. 리스트는 비어 있을 수 있습니다. 리스트가 비어 있지 않으면 첫 번째 항목을 반환하고, 그렇지 않으면 None을 반환하고 싶습니다. 이 코드는 작동합니다.

def main():

my_list = get_list()

if len(my_list) > 0:

return my_list[0]

return None

하지만 제 생각에는 이를 수행하는 간단한 일줄 속담이 있어야 할 것 같습니다. 있나요?

답변 1

파이썬 2.6+

next(iter(your_list), None)

만약 your_list가 None가 될 수 있다면:

next(iter(your_list or []), None)

파이썬 2.4

def get_first(iterable, default=None):

if iterable:

for item in iterable:

return item

return default

Hello - 안녕하세요

x = get_first(get_first_list())

if x:

...

y = get_first(get_second_list())

if y:

...

다른 옵션은 위 함수를 인라인하는 것입니다:

for x in get_first_list() or []:

# process x

break # process at most one item

for y in get_second_list() or []:

# process y

break

break을 피하기 위해서는 이렇게 쓸 수 있습니다:

for x in yield_first(get_first_list()):

x # process x

for y in yield_first(get_second_list()):

y # process y

어디에 있나요?

def yield_first(iterable):

for item in iterable or []:

yield item

return

답변 2

파이썬에서 첫 번째 아이템 또는 None을 반환하는 방법

파이썬은 매우 인기있는 프로그래밍 언어 중 하나입니다. 파이썬을 사용하여 프로그래밍하는 경우 종종 함수를 작성해야 합니다. 이러한 함수 중 일부는 리스트, 튜플 또는 딕셔너리와 같은 데이터 구조에서 첫 번째 아이템을 찾아야 할 때 사용됩니다. 그러나 때로는 해당 데이터 구조가 비어 있을 수도 있어서 첫 번째 아이템이 없는 경우 함수가 None을 반환해야 합니다. 이를 구현하는 일반적인 방법을 알아보겠습니다.

가장 간단한 방법은 리스트 또는 튜플이 비어 있는지 확인하고 첫 번째 아이템을 반환하는 것입니다. 그러나 이를 효율적으로 수행하는 방법이 있습니다. 파이썬에서 제공하는 내장 함수 중 하나인 next() 함수를 사용하는 것입니다. next() 함수는 이터레이터에서 다음 요소를 반환합니다. 이를 사용하여 리스트 또는 튜플에서 첫 번째 요소를 찾을 수 있습니다. 그러나 이 함수는 이터레이터에서 요소를 찾을 때까지 이터레이터를 모두 훑지므로 성능상의 이슈가 있습니다.

따라서 다음과 같이 첫 번째 아이템을 찾는 더 효율적인 방법을 사용할 수 있습니다.

첫 번째 방법:

```python

def first_item(items):

if items:

return items[0]

return None

```

두 번째 방법:

```python

def first_item(items):

try:

return next(iter(items))

except StopIteration:

return None

```

이 두 가지 방법 중 어느 것을 선택하든 결과는 동일합니다. 이 방법은 짧고 간결하며 가독성이 좋습니다. 또한 이 방법은 비어 있지 않은 데이터 구조에서 첫 번째 요소를 신속하게 반환하고 비어 있는 경우에는 None을 반환합니다.

이러한 방법으로 파이썬에서 첫 번째 아이템 또는 None을 반환하는 함수를 생성할 수 있습니다. 이를 통해 코드를 더 효율적으로 작성하고 유지 보수하기 쉬운 코드를 만들 수 있습니다.

반응형
Comments