2. all函数-判断可迭代对象是否包括假值

文章目录

  • Python每天一个函数-all函数
    • 2. all函数-判断可迭代对象是否包括假值
      • 【语法参考】
      • 【参数说明】
      • 【可迭代对象】
      • 【作用】
      • 【返回值】
      • 【使用all函数判断可迭代对象是否包括空、0、False的元素】
      • 【可迭代对象中的元素个数为0,返回值为`True`】
      • 【判断列表中是否包括0】
      • 【列表推导式】

Python每天一个函数-all函数

2. all函数-判断可迭代对象是否包括假值

【语法参考】

all(iterable)

iterable:可迭代的

【参数说明】

iterable:可迭代对象。如字符串、列表、元组、集合等。

【可迭代对象】

可迭代对象可以使用for循环进行遍历,也可以使用内置函数iter()将其转换为迭代器对象。

常见的可迭代对象包括列表、元组、字符串、字典、集合等。

可迭代对象可以被想象成一个容器,里面存放了有限个元素,并且每个元素都可以从中获取出来。

【作用】

all函数是Python内置的一个函数,用于判断可迭代对象中的所有元素是否都为真值(非零、非空、非None等)。

如果可迭代对象中的所有元素都为真值,则返回True

如果可迭代对象中存在一个或多个假值,则返回False

【返回值】

返回一个布尔值(True或False)。

可迭代对象不包括空、0、False元素,返回值为True,否则返回False

可迭代对象中的元素个数为0,返回值为True。例如空列表、空元组、空集合的返回值为True

【使用all函数判断可迭代对象是否包括空、0、False的元素】

lst = [1, 2, 3, 4, 5]  
print(all(lst)) # 列表元素都不为空、0、False,输出 True

tpl = (0, 1, 2, 3, 4) 
print(all(tpl))  # 元组中存在一个0元素,输出 False

st = {True, False, True} 
print(all(st)) # 集合中存在一个False元素,输出 False

【终端输出】

True
False
False

【可迭代对象中的元素个数为0,返回值为True

注意:如果可迭代对象为空,则all函数将返回True。这是因为在空的可迭代对象中不存在假值。

lst = []
print(all(lst))  # 列表中没有元素,输出 True

【终端输出】

True

【判断列表中是否包括0】

目标任务:输出一个含0的列表。

random库生成随机数列表。

all函数判断随机数列表中是否包括0。

列表中有0,输出该列表。

列表中没有0,重新执行程序。

【代码示例:2-1】

import random   # 导入随机数模块
while 1:
  a=[random.randint(0,4) for _ in range(3)]  #生成0-5之间的随机数列表
  if all(a)==False:
     print(a)
     break
  else:
     print('随机数列表中没有0,程序重新执行!')

这段代码的作用是生成一个包含5个0到5之间的随机整数的列表a。

【代码解析】

while 1:

进入一个无限循环,直到满足某个条件才会退出循环。

a=[random.randint(0,4) for _ in range(3)]  #生成0-4之间的随机数列表

使用列表推导式生成一个包含5个随机整数的列表a。每个随机整数的范围是0到5。

random.randint(0,4):这是一个随机数生成函数,它会生成一个指定范围内的随机整数。这里的范围是0到4,包括0和4,运行一次生成一个整数。

random是库名。

randintrandom库的一个方法。

【randint方法】

randint是random模块中的一个函数,用于生成指定范围内的随机整数。

语法:

random.randint(a, b)

参数:

  • a: 随机整数的最小值(包含)
  • b: 随机整数的最大值(包含)

返回值:

返回一个在指定范围内的随机整数。

例如,如果要生成一个0到4之间的随机整数,可以使用random.randint(0,4)

import random
random.randint(0,4)

【终端输出】

2

for _ in range(3):这是一个循环语句,它会执行3次。循环变量_在这里没有被使用,通常用于表示一个不需要使用的变量。

a=[random.randint(0,4) for _ in range(3)]:这是一个列表推导式,它将生成的随机整数放入列表a中。循环语句的结果会被添加到列表中。

for循环循环3次,列表a将包含3个随机整数。

例如,可能的结果是[2, 4, 1]。

由于是随机生成的,每次运行代码时结果可能会不同。

if all(a)==False:

判断列表a中是否包含0。

使用all()函数判断列表中的所有元素是否都为True。

在这里如果列表中有一个元素为0,则返回False。

if条件语句成立,程序执行print(a),输出该列表,程序结束。

如果列表中的元素都不为0,程序执行print('随机数列表中没有0,程序重新执行!'),打印提示信息,表示随机数列表中没有0。

循环回到第2步,重新生成随机数列表。

【列表推导式】

可参考文章90. Python列表推导式

列表推导式语法:

[expression for item in iterable if condition]

参数:

  • expression:用于生成新的元素的表达式。
  • item:可迭代对象中的每个元素。
  • iterable:一个可迭代对象,如列表、字符串、字典等。
  • condition:一个可选的条件,用于过滤元素。只有满足条件的元素才会被包含在新的列表中。

创建一个包含1到10的列表:

squares = [x for x in range(1, 11)]
print(squares)

【终端输出】

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

创建一个包含1到10的平方数的列表

squares = [x**2 for x in range(1, 11)]
print(squares)

【终端输出】

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

筛选出一个列表中大于5的元素:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
greater_than_five = [x for x in numbers if x > 5]
print(greater_than_five)

【终端输出】

[6, 7, 8, 9, 10]

你可能感兴趣的:(Python基础知识,python)