Python рдХрд╛ any() рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?
Python рдХрд╛ any() рдПрдХ рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдпрд╣ рдПрдХ iterable рдЬреИрд╕реЗ list рдпрд╛ tuple рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ iterable рдореЗрдВ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдорд╛рди truthy рд╣реИ, рддреЛ True рд▓реМрдЯрд╛рддрд╛ рд╣реИред truthy рдорд╛рди рд╡рд╣ рд╣реИ рдЬреЛ bool() рдХреЗ рдЬрд░рд┐рдП Boolean рдореЗрдВ рдмрджрд▓рдиреЗ рдкрд░ True рдХрд╛ рдорд╛рди рджреЗрддрд╛ рд╣реИред рдпрджрд┐ iterable рдХреЗ рд╕рднреА рдорд╛рди falsy рд╣реЛрдВ, рддреЛ any() False рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
print(any([True, False, False, True]))
print(any([False, False, False, False]))
print(any([0, 0, 5, 0]))
True
False
True
Iterable рдореЗрдВ Boolean рдорд╛рди рдпрд╛ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ Boolean рдореЗрдВ рдмрджрд▓реЗ рдЬрд╛рдиреЗ рдкрд░ True рдпрд╛ False рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рддреАрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдЪрд╛рд░ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИрдВред рдкреВрд░реНрдгрд╛рдВрдХ 0 falsy рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдиреЙрди-рдЬрд╝реАрд░реЛ рд╕рдВрдЦреНрдпрд╛рдПрдБ truthy рд╣реЛрддреА рд╣реИрдВред truthy рдФрд░ falsy рдорд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, Python рдХреЗ рд▓реЙрдЬрд┐рдХрд▓ рдСрдкрд░реЗрдЯрд░ рдкрд░ рдпрд╣ рдмреНрд▓реЙрдЧ рдкрдврд╝реЗрдВред
рдпрджрд┐ iterable рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдЦрд╛рд▓реА iterable рдореЗрдВ рдХреЛрдИ truthy рдорд╛рди рди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг any() False рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
print(any([]))
False
рдЕрдЧрд▓рд╛ рдЦрдВрдб рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ any() рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
any() рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдмрд┐рд▓реНрдЯ-рдЗрди any() рдЕрдкрдиреЗ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдИ рднреА iterable рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред Iterable рд╡рд╣ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╣реИ рдЬрд┐рд╕ рдкрд░ Python рд▓реВрдк рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд tuple рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
an_iterable = ("", 0.0, "DataCamp", False, [])
рдЗрд╕ tuple рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдСрдмреНрдЬреЗрдХреНрдЯ falsy рд╣реИрдВ:
- рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ
"" - рдлрд╝реНрд▓реЛрдЯ
0.0 - Boolean
False - рдЦрд╛рд▓реА рд╕реВрдЪреА
[]
рдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ falsy рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ bool() рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдкрд░ рдпреЗ False рдХреЗ рд░реВрдк рдореЗрдВ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдиреЙрди-рдПрдореНрдкреНрдЯреА рд╕реНрдЯреНрд░рд┐рдВрдЧ "DataCamp" truthy рд╣реИред
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХрд╛ рдПрдХ рд╕реАрдзрд╛ рддрд░реАрдХрд╛ рдХрд┐ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рддрддреНрд╡ truthy рд╣реИ рдпрд╛ рдирд╣реАрдВ, for рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ:
def check_if_contains_truthy(data):
output = False
for item in data:
if item:
output = True
return output
print(check_if_contains_truthy(an_iterable))
True
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЕрдХреНрд╖рдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рд╣реИ рдХрд┐ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ truthy рдорд╛рди рд╣реИ рдпрд╛ рдирд╣реАрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рдХреЛрдИ truthy рдорд╛рди рдкрд╛ рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ iterable рдХреЗ рдмрд╛рдХреА рдЖрдЗрдЯрдореЛрдВ рдХреА рдЬрд╛рдБрдЪ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╣рд▓реЗ truthy рдорд╛рди рдорд┐рд▓рддреЗ рд╣реА рд░рд┐рдЯрд░реНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
def check_if_contains_truthy(data):
for item in data:
if item:
return True
return False
print(check_if_contains_truthy(an_iterable))
True
return рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓рд╛ truthy рдорд╛рди рдкрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ True рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ iterable рдкрд░ рдЗрдЯрд░реЗрдЯ рдХрд░рдирд╛ рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦрддрд╛ред рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рддрднреА False рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрдм for рд▓реВрдк iterable рдХреЗ рд╕рднреА рдЖрдЗрдЯрдореЛрдВ рдкрд░ рдЗрдЯрд░реЗрдЯ рдХрд░ рд▓реЗ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА truthy рди рд╣реЛред
рдмрд┐рд▓реНрдЯ-рдЗрди any() рдЗрд╕реА рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ truthy рдорд╛рди рдкрд░ рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ lazy evaluation рдЕрдирд╛рд╡рд╢реНрдпрдХ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд░реЛрдХрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред Python рдХрд╛ any() рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдЗрд╕ рдмреЗрд╣рддрд░ рджрдХреНрд╖рддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ timeit рдореЙрдбреНрдпреВрд▓ рдХреЗ timeit() рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдпрд╣ рд╕рдордп рдорд╛рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ Python рдХреЛ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ:
from timeit import timeit
print("Execution time for 'check_if_contains_truthy()'")
print(
timeit(
"check_if_contains_truthy(an_iterable)",
number=10_000_000,
globals=globals(),
)
)
print("Execution time for 'any()'")
print(
timeit(
"any(an_iterable)",
number=10_000_000,
globals=globals(),
)
)
Execution time for 'check_if_contains_truthy()'
0.6335119580035098
Execution time for 'any()'
0.39488654200249584
timeit() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рд╡рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ рдЪрд▓рд╛рдирд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд╛рд░реНрдердХ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ 10,000,000 рдмрд╛рд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдЧреНрд▓реЛрдмрд▓ рд╡реИрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ timeit() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
Python рдХрд╛ any() check_if_contains_truthy() рд╕реЗ рддреЗрдЬрд╝ рд╣реИред рдХрд┐рд╕реА iterable рдореЗрдВ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ truthy рдорд╛рди рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП any() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ for рд▓реВрдк рд╕реЗ рдЕрдзрд┐рдХ Pythonic рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИред
any() рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ
рдЖрдЗрдП Python рдХреЗ any() рдХреЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЗрдЦреЗрдВред
рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдорд╛рдиреНрдп рд╣реИ
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреА рдПрдХ рд╢реГрдВрдЦрд▓рд╛ рд╕реВрдЪреА рдпрд╛ tuple рдореЗрдВ рдПрдХрддреНрд░ рдХреА рдЧрдИ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдЗрдирдкреБрдЯ рдорд╛рдиреНрдп рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд╣ рдиреЙрди-рдПрдореНрдкреНрдЯреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ:
user_inputs = ["", "10.99", ""]
if any(user_inputs):
print("At least one valid input present")
# Rest of code...
else:
print("There are no valid inputs")
At least one valid input present
рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ, any() True рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ if рдЦрдВрдб рдХрд╛ рдХреЛрдб рдЪрд▓рддрд╛ рд╣реИред
рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ
рдмрд┐рд▓реНрдЯ-рдЗрди any() рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд┐рд╕реА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ:
from pathlib import Path
files = ["article.md", "use_any.py", "scratch.py", "test_file.txt"]
cwd = Path.cwd()
# Create a test file to test code
Path("test_file.txt").write_text("This is a test file")
if any(Path(file).exists() for file in files):
print("At least one of the files exists")
# Rest of codeтАж
else:
print("None of the files exist")
At least one of the files exists
рдХреЛрдб pathlib рдореЙрдбреНрдпреВрд▓ рдФрд░ Path.cwd() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдп рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ test_file.txt рдирд╛рдордХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕ рдХреЛрдб рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдлрд╝рд╛рдЗрд▓рдирд╛рдо рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП Python рдХрд╛ any() рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд┐рд╕реА iterable рд╕реЗ рдЖрдЗрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ
рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рди any() рдХреЛ рдПрдХ generator expression рдХреЗ рд╕рд╛рде рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА iterable рд╕реЗ рдЖрдЗрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, any() рдбрд┐рдХреНрд╢рдирд░реА рдХреА рд╕реВрдЪреА рдореЗрдВ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдРрд╕реЗ рдПрдВрдЯреНрд░реА рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдпреБ 18 рд╕реЗ рдХрдо рд╣реИ:
records = [
{"name": "Sarah", "age": 23},
{"name": "Jake", "age": 30},
{"name": "Paul", "age": 17},
]
if any(record["age"] < 18 for record in records):
print("There's at least one minor.")
else:
print("All records are adults.")
There's at least one minor.
рдЬрдирд░реЗрдЯрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдХреНрд╢рдирд░реА рдХреА "age" рдХреБрдВрдЬреА рдХреЗ рдЕрдиреБрд░реВрдк рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ True рдпрд╛ False рджреЗрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рдЬрдирд░реЗрдЯрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди iterable рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ any() рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Python рдХреЗ any() рдореЗрдВ lazy evaluation рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдордЭреЗрдВ
рдкрд┐рдЫрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдпрд╣ рднреА рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ any() lazily рдЗрд╡реИрд▓реНрдпреВрдПрдЯ рд╣реЛрддрд╛ рд╣реИред рдбрд┐рдХреНрд╢рдирд░реА рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрджрд▓рд╛рд╡ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
records = [
{"name": "Sarah", "age": 23},
{"name": "Jake", "age": 30},
{"name": "Paul", "age": 17},
{"name": "Jill"},
]
if any(record["age"] < 18 for record in records):
print("There's at least one minor.")
else:
print("All records are adults.")
There's at least one minor.
records рдореЗрдВ рдЪреМрдереА рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдВ "age" рдХреБрдВрдЬреА рд╡рд╛рд▓рд╛ рдЖрдЗрдЯрдо рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рднреА, рдЬрдм рдЗрд╕ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП "age" рдХреЗ рдорд╛рди рдХреЛ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреЛрдб рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдЙрдард╛рддрд╛ рдХреНрдпреЛрдВрдХрд┐ any() рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рдХреЛрдИ truthy рдорд╛рди рдкрд╛ рдЪреБрдХрд╛ рдерд╛ред рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ truthy рдорд╛рди рдорд┐рд▓рдиреЗ рдкрд░ рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдпрджрд┐ рд╡рд╣ рдбрд┐рдХреНрд╢рдирд░реА рдЬрд┐рд╕рдореЗрдВ "age" рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИ, 18 рд╕реЗ рдХрдо рдЖрдпреБ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдЖрдЗрдЯрдо рд╕реЗ рдкрд╣рд▓реЗ рдЖ рдЬрд╛рдП, рддреЛ рдХреЛрдб KeyError рдЙрдард╛рддрд╛ рд╣реИ:
records = [
{"name": "Jill"},
{"name": "Sarah", "age": 23},
{"name": "Jake", "age": 30},
{"name": "Paul", "age": 17},
]
if any(record["age"] < 18 for record in records):
print("There's at least one minor.")
else:
print("All records are adults.")
Traceback (most recent call last):
...
if any(record["age"] < 18 for record in records):
~~~~~^^^^^^
KeyError: 'age'
рдпрд╣ рдЙрджрд╛рд╣рд░рдг Python рдХреЗ any() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ "age" рдХреБрдВрдЬреА рдХреЗ рдмрд┐рдирд╛ рдЖрдЗрдЯрдореЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ exceptions рдирд╣реАрдВ рдЙрдард╛рдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕реНрдХреНрд╡рд╛рдпрд░ рдмреНрд░реИрдХреЗрдЯ рдиреЛрдЯреЗрд╢рди рд╕реЗ рдбрд┐рдХреНрд╢рдирд░реА рд╡реИрд▓реНрдпреВ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреЛрдб рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдердб .get() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рдорд╛рдирдирд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рдПрдВрдЯреНрд░реА рдореЗрдВ рдЖрдпреБ рдирд╣реАрдВ рджреА рдЧрдИ рд╣реИ рд╡реЗ рдирд╛рдмрд╛рд▓рд┐рдЧ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ if рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдирд┐рдореНрди рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
if any(record.get("age", 18) < 18 for record in records):
# ...
рдпрджрд┐ рдХреЛрдб рдХреЛ рдпрд╣ рдорд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрд┐рди рдПрдВрдЯреНрд░реА рдореЗрдВ рдЖрдпреБ рдирд╣реАрдВ рд╣реИ рд╡реЗ рдирд╛рдмрд╛рд▓рд┐рдЧ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 18 рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
Python: any() рдмрдирд╛рдо all()
Python рдХреЗ any() рдХрд╛ рдПрдХ рд╕рд╣рдЪрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, all()ред рдпрд╣ рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рди рднреА рдПрдХ iterable рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрдм True рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рднреА рдЖрдЗрдЯрдо truthy рд╣реЛрдВред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдкрд╣рд▓реЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдорд╛рдиреНрдп рдЗрдирдкреБрдЯ рдЪрд╛рд╣рд┐рдП, рддреЛ Python рдХрд╛ any() рдЙрдкрдпреЛрдЧреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдорд╛рдиреНрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рддреЛ all() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
user_inputs = ["", "10.99", ""]
if any(user_inputs):
print("At least one valid input present")
# Rest of code...
else:
print("There are no valid inputs")
if all(user_inputs):
print("All inputs are valid")
# Rest of code...
else:
print("Not all inputs are valid")
At least one valid input present
Not all inputs are valid
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреА рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдиреЙрди-рдПрдореНрдкреНрдЯреА рд╣реЛрдВ, рддреЛ all() True рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
user_inputs = ["5.99", "10.99", "19.99"]
# тАж
At least one valid input present
All inputs are valid
any() рдХреА рддрд░рд╣ рд╣реА, рдмрд┐рд▓реНрдЯ-рдЗрди all() рднреА lazily рдЗрд╡реИрд▓реНрдпреВрдПрдЯ рд╣реЛрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ falsy рдорд╛рди рдорд┐рд▓рдиреЗ рдкрд░ рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
Python рдХрд╛ any() рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА iterable рдХреЗ рдЖрдЗрдЯрдореЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ truthy рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ iterable рдореЗрдВ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рдЖрдЗрдЯрдо True рд╣реИ рдпрд╛ Boolean рдореЗрдВ рдХрд╛рд╕реНрдЯ рдХрд░рдиреЗ рдкрд░ True рджреЗрддрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди True рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рд╡рд╣реА рдЖрдЙрдЯрдкреБрдЯ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рди рдЕрдзрд┐рдХ рдкрдардиреАрдп рдФрд░ рдХреБрд╢рд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдпреВрдирд┐рд╡рд░реНрд╕рд┐рдЯреА рдСрдл рдорд╛рд▓реНрдЯрд╛ рдореЗрдВ рд╕реНрдирд╛рддрдХ рд╕реНрддрд░ рдкрд░ рднреМрддрд┐рдХреА рдФрд░ рдЧрдгрд┐рдд рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рд▓рдВрджрди рдЪрд▓рд╛ рдЧрдпрд╛ рдФрд░ рдЗрдореНрдкреАрд░рд┐рдпрд▓ рдХреЙрд▓реЗрдЬ рд╕реЗ рднреМрддрд┐рдХреА рдореЗрдВ рдкреАрдПрдЪрдбреА рдкреНрд░рд╛рдкреНрдд рдХреАред рдореИрдВрдиреЗ рдорд╛рдирд╡ рд░реЗрдЯрд┐рдирд╛ рдХреА рдЗрдореЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд╡реАрди рдСрдкреНрдЯрд┐рдХрд▓ рддрдХрдиреАрдХреЛрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЕрдм, рдореИрдВ Python рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдиреЗ, Python рдкрд░ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдФрд░ Python рд╕рд┐рдЦрд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдБред

Python рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдореЗрдВ рдПрдХ рдЖрдо рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рдХрд┐ рдХрд┐рд╕реА рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХрд╛ рдХрдо-рд╕реЗ-рдХрдо рдПрдХ рддрддреНрд╡
Trueрд╣реИ рдпрд╛ рдирд╣реАрдВредрд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рдПрдХ рд▓реВрдк рд▓рд┐рдЦрдХрд░ iterable рдХреЗ рд╣рд░ рдЖрдЗрдЯрдо рдкрд░ рдЗрдЯрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣
Trueрдпрд╛FalseрдХрд╛ рдорд╛рди рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Python рдХрд╛any()рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ Pythonic рддрд░реАрдХрд╛ рд╣реИредрдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ Python рдХреЗ
any()рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╡ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред