일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 버전관리
- 머신러닝
- 딥러닝
- 소프트웨어공학
- 컴퓨터비전
- 빅데이터
- 코딩
- 프로그래밍
- 2
- 데이터과학
- 네트워크보안
- Yes
- 데이터베이스
- 인공지능
- 자바스크립트
- 알고리즘
- 네트워크
- 컴퓨터공학
- 소프트웨어
- 데이터분석
- 보안
- 자료구조
- 컴퓨터과학
- 클라우드컴퓨팅
- 파이썬
- 사이버보안
- 웹개발
- 프로그래밍언어
- I'm Sorry
- 데이터구조
- Today
- Total
스택큐힙리스트
Python 관용구: 첫 번째 항목이나 None 반환 본문
나는 리스트를 반환하는 여러 메서드를 호출하고 있습니다. 리스트는 비어 있을 수 있습니다. 리스트가 비어 있지 않으면 첫 번째 항목을 반환하고, 그렇지 않으면 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을 반환하는 함수를 생성할 수 있습니다. 이를 통해 코드를 더 효율적으로 작성하고 유지 보수하기 쉬운 코드를 만들 수 있습니다.