Có hàm nào trong Python kiểm tra nếu giá trị trả về là Không và nếu nó là, cho phép bạn đặt nó thành một giá trị khác như hàm IFNULL
trong MySQL?Python tương đương với IFNULL của MySQL
Trả lời
Không thực sự, vì bạn không thể rebind đối số.
if foo is None:
foo = 42
hoặc
def ifnull(var, val):
if var is None:
return val
return var
foo = ifnull(foo, 42)
Như thế này:
x = SOME_VALUE if x is None else x
Kể từ khi câu hỏi này bây giờ là hơn 2 tuổi, tôi đoán đây là chi tiết để tham khảo trong tương lai :)
Những gì tôi thích làm là max('', mightBeNoneVar)
hoặc max(0, mightBeNoneVar)
(tùy thuộc vào ngữ cảnh).
dụ More công phu:
print max('', col1).ljust(width1) + ' ==> '+ max('', col2).ljust(width2)
Có vẻ hơi phức tạp với tôi, và nó cũng đáng chú ý là khi so sánh như công việc này trong 2.x, trong Python 3.x, 'NoneType' không có thứ tự và do đó bạn sẽ nhận được một' TypeError' –
Nếu bạn muốn chuyển đổi tất cả "falsy" giá trị (tức là None
, 0
, ""
, []
, False
, vv) đến một giá trị cụ thể và để cho mọi thứ khác thông qua ảnh hưởng , bạn có thể sử dụng or
. Ví dụ:
print (x or default_value)
sẽ in giá trị của x
nếu nó truthy, và giá trị của default_value
nếu x
là falsy.
Tôi đề cập đến điều này bởi vì IFNULL
thường được sử dụng theo cách này để làm sạch null trong cột boolean và số trong cơ sở dữ liệu và do đó có thể là những gì bạn hoặc những người khác sau. Rõ ràng, nếu bạn muốn điều trị None
khác với 0
, False
, v.v. điều này sẽ không hoạt động.
- 1. MySQL ifnull tương đương cho php
- 2. IFNULL tương đương với ngôn ngữ truy vấn Hibernate?
- 3. SQLite tương đương với ISNULL(), NVL(), IFNULL() hoặc liên hiệp()
- 4. Tương đương TreeSet của Java tương đương với Python?
- 5. Python tương đương với 'method_missing' của Ruby '
- 6. Python tương đương với Mclapply của R()
- 7. Java tương đương với struct.pack của Python?
- 8. Python tương đương với memory_get_usage() của PHP?
- 9. python tương đương tương đương
- 10. mysql IFNULL ELSE
- 11. python tương đương với sed
- 12. Python tương đương với Sinatra
- 13. Python tương đương với find2perl
- 14. Python tương đương với DBI của Perl là gì?
- 15. phpMyAdmin tương đương với MySQL cho Redis?
- 16. MySQL tương đương với SEQUENCE.NEXTVAL Oracle
- 17. Oracle Tương đương với kiểu TEXT của MySQL
- 18. Tương đương với RowID của Oracle trong MySQL
- 19. PHP tương đương với UNHEX của MySQL() là gì?
- 20. MySQLi Tương đương với Mã MySQL
- 21. Tương đương Python của compareTo của Java()
- 22. generate_series() tương đương trong MySQL
- 23. Java Tương đương với từ điển Python
- 24. Tương đương với Python urllib trong Haskell
- 25. Python tương đương với atoi/atof
- 26. Python tương đương với C++ getline()
- 27. MATLAB tương đương với String.Join Python()
- 28. Java tương đương với bisect trong python
- 29. Tương đương với LinkedHashMap trong Python
- 30. Python tương đương với Perlbrew là gì?
Thân của 'ifnull()' có thể được rút ngắn thành 'val nếu var là None else var', cũng vậy. –
Nó có thể được rút ngắn thành 'return var hoặc val' thực sự là –
@IonutHulub: Không, vì rất nhiều giá trị không phải' không phải là false. –