Python代码阅读--列表元素逻辑判断

目录
  • 1、every
  • 2、some
  • 3、none

1、every

def every(lst, fn=lambda x: x):
  return all(map(fn, lst))

# EXAMPLES
every([4, 2, 3], lambda x: x > 1) # True
every([1, 2, 3]) # True

every 用于判断列表 lst 中的元素是否都符合给定的判断条件 fn 。

代码中首先使用 map 返回一个迭代器,该迭代器会将判断条件 fn 应用于所有的列表元素上。然后使用 all 函数判断迭代器中的元素是否都为 True 。

all(iterable) 接收一个可迭代对象,如果这个对象中的所有元素都为 True ,则函数返回 True 。注意,当该对象为空时,也返回 True 。该函数等价于:

def all(iterable):
  for element in iterable:
    if not element:
      return False
  return True

2、some

def some(lst, fn=lambda x: x):
  return any(map(fn, lst))

# EXAMPLES
some([0, 1, 2, 0], lambda x: x >= 2 ) # True
some([0, 0, 1, 0]) # True

some 用于判断列表 lst 列表中是否存在符合给定的条件 fn 的元素。

代码中首先使用 map 返回一个迭代器,该迭代器会将判断条件 fn 应用于所有的列表元素上。然后使用 any 函数判断迭代器中是否至少有一个元素为 True

any(iterable) 接收一个可迭代对象,如果这个对象中有任一元素为 True ,则函数返回 True 。注意,当该对象为空时,返回 False 。该函数等价于:

def any(iterable):
  for element in iterable:
    if element:
      return True
  return False

3、none

def none(lst, fn=lambda x: x):
  return all(not fn(x) for x in lst)

# EXAMPLES
none([0, 1, 2, 0], lambda x: x >= 2 ) # False
none([0, 0, 0]) # True

none 用于判断列表 lst 中的元素是否都不符合给定的判断条件 fn 。

代码中首先使用生成器表达式生成一个生成器,该生成器会将判断条件 not fn 应用于所有的列表元素上。然后使用 all 函数判断迭代器中的元素是否都为 True

lst = [0, 1, 2, 0]

def fn(x):
  return x >= 2

type(not fn(x) for x in lst) # <class 'generator'>

到此这篇关于Python代码阅读--列表元素逻辑判断的文章就介绍到这了,更多相关Python 列表元素逻辑判断内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python统计列表元素出现次数的方法示例

    1. 引言 在使用Python的时候,通常会出现如下场景: array = [1, 2, 3, 3, 2, 1, 0, 2] 获取array中元素的出现次数 比如,上述列表中:0出现了1次,1出现了2次,2出现了3次,3出现了2次. 本文阐述了Python获取元素出现次数的几种方法.点击获取完整代码. 2. 方法 获取元素出现次数的方法较多,这里我提出如下5个方法,谨供参考.下面的代码,传入的参数均为 array = [1, 2, 3, 3, 2, 1, 0, 2] 2.1 Counter方法

  • python列表每个元素同增同减和列表元素去空格的实例

    如下所示: import os var = [1, 2, 3] data = [x*2 for x in var] print (data) two = [[i, i**2] for i in var] print (two) three = [[i, i+i, i**3] for i in var] print (three) fruit = [' banana', ' loganberry ', 'passion fruit '] strip_fruit = [one.strip() for

  • python中列表元素连接方法join用法实例

    本文实例讲述了python中列表元素连接方法join用法.分享给大家供大家参考.具体分析如下: 创建列表: >>> music = ["Abba","Rolling Stones","Black Sabbath","Metallica"] >>> print music 输出: ['Abba', 'Rolling Stones', 'Black Sabbath', 'Metallica']

  • python 列表元素左右循环移动 的多种解决方案

    如下所示: #待处理列表 A= [1,2,3,4,5] #移动次数 a = 3 右移比较简单 for i in range(a): A.insert(0,A.pop()) 左移 for i in range(a): A.insert(len(A),A[0]) A.remove(A[0]) #左移 for i in range(a): b = A.pop(0) A.append(b) 列表双向队列 from collections import deque aa = deque(A) #正数表示向

  • 对python中两种列表元素去重函数性能的比较方法

    测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import time import random l1 = [] leng = 10L for i in range(0,leng): temp = random.randint(1,10) l1.append(temp) print '测试列表长度为:',leng #first set last = time.

  • 浅谈python输出列表元素的所有排列形式

    例如: ['a', 'b', 'c'] 输出 ['a', 'b', 'c'] ['a', 'c', 'b'] ['b', 'a', 'c'] ['b', 'c', 'a'] ['c', 'a', 'b'] ['c', 'b', 'a'] 方法一:利用递归的方式实现 def permutation(li): len_list = len(li) if len_list == 1: return li result = [] for i in range(len_list): res_list =

  • python 实现交换两个列表元素的位置示例

    在IDLE 中验证如下: >>> numbers = [5, 6, 7] >>> i = 0 >>> numbers[i], numbers[i+1] = numbers[i+1], numbers[i] >>> numbers [6, 5, 7] python是可以一次赋值两个变量的!谢谢! 以上这篇python 实现交换两个列表元素的位置示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python 输出列表元素实例(以空格/逗号为分隔符)

    给定list,如何以空格/逗号等符号以分隔符输出呢? 一般的,简单的for循环可以打印出list的内容: l=[1,2,3,4] for i in l: print(i) 输出结果一行一个元素: 1 2 3 4 若想得到以空格或逗号为分隔符的输出结果,代码可改为: l=[1,2,3,4] for i in l: print(i,end=' ')#以空格为分隔符 输出结果为:1 2 3 4 (注意,此时4后面还有一个空格) l=[1,2,3,4] for i in l: print(i,end='

  • Python列表元素常见操作简单示例

    本文实例讲述了Python列表元素常见操作.分享给大家供大家参考,具体如下: 列表类似于java中的数组,用方括号表示,逗号分隔其中的元素 #赋值.打印 children_names = ['杜子腾','杜小月','杜小星','杜小阳','杜小花'] print(children_names) 运行结果: ['杜子腾', '杜小月', '杜小星', '杜小阳', '杜小花'] 访问其中的某一个元素 children_names = ['杜子腾','杜小月','杜小星','杜小阳','杜小花']

  • Python中列表元素转为数字的方法分析

    本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: numbers = [1, 5, 10, 8] 用一个循环来解决: new_numbers = []; for n in numbers: new_numbers.append(int(n)); numbers = new_numbers; 有没有更简单的语句可以做到呢? 1. numbers =

随机推荐