這樣的:
如果列表['', 'a', 'b']
回報'a'
如果列表['', '', '']
回報''
如果列表是['a', 'b', 'c']
回a
是蟒蛇任何方法來做到這一點?
我的意思是不需要我寫函數自己
我想在javascript
python如何在列表中返回first value = true?
1
A
回答
7
明顯的方式像var a = b || c
內置的方法是使用一個發電機表達
>>> next(x for x in ['a', 'b', 'c'] if x)
'a'
>>> next(x for x in ['', 'b', 'c'] if x)
'b'
但是 - 全是假的引發例外的,而不是''
>>> next(x for x in ['', '', ''] if x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
可以解決這個問題提供了一個默認next
這樣
>>> next((x for x in ['', '', ''] if x), '')
''
0
我想象變種A = B內置方法|| Ç在JavaScript
Python的or
作品幾乎是完全相同的方式,所以如果你在JavaScript中寫爲
result = arr[0] || arr[1] || arr[2];
那麼你可以做在Python如下:
result = l[0] or l[1] or l[2]
3
直接從itertools
recipes,Python認可的解決方案(如果您使用Py2,請將filter
替換爲itertools.ifilter
或者它不會正確短路):
def first_true(iterable, default=False, pred=None):
"""Returns the first true value in the iterable.
If no true value is found, returns *default*
If *pred* is not None, returns the first item
for which pred(item) is true.
"""
# first_true([a,b,c], x) --> a or b or c or x
# first_true([a,b], x, f) --> a if f(a) else b if f(b) else x
return next(filter(pred, iterable), default)
0
相關問題
- 1. 爲什麼'value'== value在PHP中返回TRUE?
- 2. 在python中返回列表
- 3. 在Python中返回列表
- 4. c#Double.TryParse(「1,1,1」,out value)返回true,value = 111呵呵?
- 5. 在python中返回1而不是true
- 6. python正則表達式返回true/false
- 7. 在bash中'test -n'如何返回'true'?
- 8. 如果Contains返回true,則在列表中提取項目
- 9. 如果原子在列表中返回True的LISP函數
- 10. Python`os.path.isfile()`總是返回TRUE
- 11. Python返回列表
- 12. Python - 如何返回列表的indice值?
- 13. eq對非等於列表返回true
- 14. 爲什麼is.vector()爲列表返回TRUE?
- 15. is.null()對非空值列表返回true
- 16. 列表元組返回python
- 17. 返回true在C++中返回0
- 18. 如果「any」返回true,則取值python
- 19. 如何使StdIn.isEmpty()返回true?
- 20. 如何讓0返回true?
- 21. 如何在Prolog中返回列表?
- 22. 在Python中返回一個列表
- 23. Elseif返回#VALUE
- 24. Python列表返回 '無'
- 25. 如果列表爲空,QList :: first()會返回什麼?
- 26. MySQL列= 0返回true
- 27. 在jquery中返回true ajax
- 28. sqlsrv_fetch_array在php中返回true
- 29. 表單驗證regex.test(value)返回true,但如果它是假的,想法呢?
- 30. .value返回Nothing(javaScript)
另外的可能重複https://stackoverflow.com/questions/18208730/shortcut-or-chain-applied-on-list,HTTPS:/ /stackoverflow.com/questions/1077307/why-is-there-no-firstiterable-built-in-function-in-python等 – ShadowRanger