Python 实现过滤掉列表中唯一值

目录
  • 1、filter_unique
  • 2、collections.Counter
  • 3、列表推导式
  • 4、filter_non_unique

1、filter_unique

from collections import Counter

def filter_unique(lst):
  return [item for item, count in Counter(lst).items() if count > 1]

# EXAMPLES
filter_unique([1, 2, 2, 3, 4, 4, 5]) # [2, 4]

函数使用collections.Counter函数对列表进行计数,在通过列表推导式,将非唯一值过滤出去(过滤掉计数大于1的值)。

2、collections.Counter

class collections.Counter([iterable-or-mapping])

Counter是一个dict的子类,用于计数可哈希对象。它是一个集合,元素像字典键(key)一样存储,它们的计数存储为值。计数可以是任何整数值,包括0和负数。它可以接收一个可迭代对象,并对其元素进行计数。

其成员函数items()将返回一个字典的键值对的新视图。再结合collections.Counter,上述代码中Counter(lst).items()将一个列表转化成了(元素,计数)对。

3、列表推导式

列表推导式提供了一个更简单的创建列表的方法。常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列。

列表推导式的结构是由一对方括号所包含的以下内容:一个表达式,后面跟一个for子句,然后是零个或多个for或if子句。其结果将是一个新列表,由对表达式依据后面的for和if子句的内容进行求值计算而得出。

上面filter_unique可以等价的写成:

from collections import Counter

def filter_unique(lst):
  temp_list = []
  for item, count in Counter(lst).items():
    if count > 1:
      temp_list.append(item)
  return temp_list

# EXAMPLES
filter_unique([1, 2, 2, 3, 4, 4, 5]) # [2, 4]

4、filter_non_unique

from collections import Counter

def filter_non_unique(lst):
  return [item for item, count in Counter(lst).items() if count == 1]

# EXAMPLES
filter_non_unique([1, 2, 2, 3, 4, 4, 5]) # [1, 3, 5]

filter_non_unique和上面的代码相似,功能是过滤掉列表中的非唯一值。

到此这篇关于Python 实现过滤掉列表中唯一值的文章就介绍到这了,更多相关Python 实现过滤掉列表中唯一值内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python爬虫之异常捕获及标签过滤详解

    增加异常捕获,更容易现问题的解决方向 import ssl import urllib.request from bs4 import BeautifulSoup from urllib.error import HTTPError, URLError def get_data(url): headers = {"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (

  • Python 敏感词过滤的实现示例

    目录 一个简单的实现 使用BSF(宽度优先搜索)进行实现 使用DFA(Deterministic Finite Automaton)进行实现 一个简单的实现 主要是通过循环和replace的方式进行敏感词的替换 class NaiveFilter(): '''Filter Messages from keywords very simple filter implementation >>> f = NaiveFilter() >>> f.parse("fil

  • Python方差特征过滤的实例分析

    说明 1.通过特征本身的方差来筛选特征.特征的方差越小,特征的变化越不明显. 2.变化越不明显的特征对我们区分标签没有太大作用,因此应该消除这些特征. 实例 def variance_demo(): """ 过滤低方差特征 :return: """ # 1. 获取数据 data = pd.read_csv('factor_returns.csv') data = data.iloc[:, 1:-2] print('data:\n', data)

  • python查看列的唯一值方法

    查看某一列中有多少中取值: 数据集名.drop_duplicates(['列名']) #实际为删除重复项,删除后对原数据集不修改 输入:data.drop_duplicates(['name']) 输出:  1   zhangsan 2    lisi 3    wangwu 以上这篇python查看列的唯一值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Python 实现过滤掉列表中唯一值

    目录 1.filter_unique 2.collections.Counter 3.列表推导式 4.filter_non_unique 1.filter_unique from collections import Counter def filter_unique(lst): return [item for item, count in Counter(lst).items() if count > 1] # EXAMPLES filter_unique([1, 2, 2, 3, 4, 4

  • python 返回列表中某个值的索引方法

    如下所示: list = [5,6,7,9,1,4,3,2,10] list.index(9) out:3 同时可以返回列表中最大值的索引list.index(max(list)) 最小值索引list.index(min(list)) 以上这篇python 返回列表中某个值的索引方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 在python带权重的列表中随机取值的方法

    1 random.choice python random模块的choice方法随机选择某个元素 foo = ['a', 'b', 'c', 'd', 'e'] from random import choice print choice(foo) 2 random.sample 使用python random模块的sample函数从列表中随机选择一组元素 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5)

  • Python 从列表中取值和取索引的方法

    如下所示: name_list["zhangsan","lisi","wangwu"] #1.取值 print(name_list[0]) print(name_list[1]) print(name_list[2]) #2.取索引 print(name_list.index("lisi")) #3.修改 name_list[1]="李四" #4.增加数据 name_list.append("王小

  • python实现将列表中各个值快速赋值给多个变量

    我就废话不多说啦,还是直接看代码吧! list1 = [1,2,3,4] a,b,c,d = list1 则 a = 1 b =2 等 这种方式只有当左边的操作数个数和list1长度相同时,才可以这么做,不然报错. 我们假设我们有一个list对象List,它的长度足够长,想把它从下标i开始的k个元素赋给k个元素,可以这么做: v1, v2, v3, -, vk = List[i : i + k] #默认i=0, k=len(List) 补充知识:python 将某个字段存储为列表类型 实现存储数

  • python代码实现将列表中重复元素之间的内容全部滤除

    1. 引言 因为在学习遗传算法路径规划的内容,其中遗传算法中涉及到了种群的初始化,而在路径规划的种群初始化中,种群初始化就是先找到一条条从起点到终点的路径,也因此需要将路径中重复节点之间的路径删除掉(避免走回头路),这样子初始种群会比较优越,也能加快算法收敛速度.然后我在搜资料的时候发现,许多的代码都是滤除列表中相同元素的,并没有滤除相同元素中间段的代码,因此就自己写了. 2. 代码部分 我在python程序中把每一条路径用列表表示的,因此每一个列表就是一条路径比如 a = [0,1,3,4,5

  • Python代码实现找到列表中的奇偶异常项

    目录 1.find_parity_outliers 2.class collections.Counter([iterable-or-mapping]) 本篇阅读的代码片段来自于30-seconds-of-python. 1.find_parity_outliers from collections import Counter def find_parity_outliers(nums): return [ x for x in nums if x % 2 != Counter([n % 2

  • Python实现统计给定列表中指定数字出现次数的方法

    本文实例讲述了Python实现统计给定列表中指定数字出现次数的方法.分享给大家供大家参考,具体如下: 直接看实现: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:给定一个列表计数指定数字出现的所有次数 ''' def count_num_func(num_list,num): ''''' 计数指定数字 ''' split_list=[] for one in num_list: split_list+=list(str

  • python 实现返回一个列表中出现次数最多的元素方法

    如下所示: # 返回一个列表中出现次数最多的元素 def showmax(lt):     index1 = 0                       #记录出现次数最多的元素下标     max = 0                          #记录最大的元素出现次数     for i in range(len(lt)):         flag = 0                    #记录每一个元素出现的次数         for j in range(i+1,

  • python找出一个列表中相同元素的多个索引实例

    定义:X=[1,2,3,1,4] 任务:找出元素为1的索引 Solution: # 如果直接用X.index(1),只能得到0这一个索引,而我们需要所有索引. l = len(X) zip_list = zip(*(range(l),X)) id1 = [z[0] for i,z in enumerate(zip_list) if z[1]==1] # 或者更简单的 id1 = [i for i,x in enumerate(X) if x==1] 以上这篇python找出一个列表中相同元素的多

随机推荐