美文网首页
利用字典来完成较大列表中每个元素的计数

利用字典来完成较大列表中每个元素的计数

作者: 大海龟啦啦啦 | 来源:发表于2020-07-10 20:20 被阅读0次

有很多时候我们需要对自己的文件进行去冗余,一般我都是通过将其导入到列表之后通过删除列表中重复元素来进行的,参见(https://www.jianshu.com/p/5fbe7222c609)。但是有时候我们会需要对去冗余之后的元素进行在原始列表中数量的计算,这时候如果我们用count的方法可能就会非常的慢,因此我利用字典来完成这一操作,只需要对列表进行一次遍历即可得到删除了重复元素的列表和每个元素的数量

In [25]: list1 = [1 , 2 , 3 , 4 , 5 , 4 , 2 , 6 , 3 , 8 , 7 , 9 , 10 , 7 , 4 , 3 , 1 , 2 , 5 , 6 , 8 , 9 , 7 , 6]

In [26]: dict1 = {}

In [27]: for i in list1:
    ...:     dict1[i] = dict1.get(i , 0) + 1
    ...:

In [28]: dict1
Out[28]: {1: 2, 2: 3, 3: 3, 4: 3, 5: 2, 6: 3, 7: 3, 8: 2, 9: 2, 10: 1}

In [29]: for key1 , value1 in dict1.items():
    ...:     print(key1 , value1)
    ...:
1 2
2 3
3 3
4 3
5 2
6 3
8 2
7 3
9 2
10 1

注:代码中的key1对应的即去冗余之后的元素,value1对应的即每个元素在原列表中的数量。要想通过这个方法来获得删除列表重复元素的话,只需要进行下面的操作

In [30]: unique_list1 = []

In [31]: unique_value_list = []

In [32]: for key1 , value1 in dict1.items():
    ...:     unique_list1.append(key1)
    ...:     unique_value_list.append(value1)
    ...:

In [33]: unique_list1
Out[33]: [1, 2, 3, 4, 5, 6, 8, 7, 9, 10]

In [34]: unique_value_list
Out[34]: [2, 3, 3, 3, 2, 3, 2, 3, 2, 1]

unique_list1列表中即删除重复值之后的列表
此外,如果列表不大的话可以通过下面的代码来完成,列表太大的话就不要用下面的方法了。

In [35]: list1 = [1 , 2 , 3 , 4 , 5 , 4 , 2 , 6 , 3 , 8 , 7 , 9 , 10 , 7 , 4 , 3 , 1 , 2 , 5 , 6 , 8 , 9 , 7 , 6]

In [36]: unique_list1 = list(set(list1))

In [37]: unique_value_list = []

In [38]: for i in unique_list1:
    ...:     unique_value_list.append(list1.count(i))
    ...:

In [39]: unique_list1
Out[39]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

In [40]: unique_value_list
Out[40]: [2, 3, 3, 3, 2, 3, 3, 2, 2, 1]

相关文章

  • 利用字典来完成较大列表中每个元素的计数

    有很多时候我们需要对自己的文件进行去冗余,一般我都是通过将其导入到列表之后通过删除列表中重复元素来进行的,参见(h...

  • Python编程技巧合集

    同时迭代两个列表 初始化列表的值 列表转换为字符串 从字典中获取元素 替换成这样 计数时使用Counter计数对象...

  • Python  C1-5——list.append()及输出

    在字典类型中定义字典,列表类型中用append方法在列表后依次添加元素,用for循环输出列表和字典中的元素...

  • Python 进阶(上)

    1、如何在列表、字典、集合中根据条件筛选数据? 列表 字典 集合 2、如何为元组中的每个元素命名,提高程序可读性?...

  • python 编程技巧(一)

    如何在字典,列表,集合中 筛选数据 运行在ipython中 常规 filter 列表解析 如何为元组中的每个元素...

  • for循环

    有时,您需要在列表中的每个元素上执行代码。 这被称为迭代,它可以用一个 while 循环和一个计数器变量来完成。 ...

  • 字典&&列表&&元组

    {字典}&&[列表]&&(元组) 字典(dictionary) 创建dictionary:每个元素都是一个key-...

  • 第7章 字典和散列表 (Dictionary and HashT

    集合、字典和散列表可以存储不重复的值,在集合中,感兴趣的是每个值本身,并作为主要元素。而在字典和散列表中是以键值对...

  • 11总 文件和异常捕获

    复习: 容器类型:字典、列表、元祖、集合 1.列表:有序(可以通过下标获取元素)、可变(增删改)、列表中的元素可以...

  • 列表元素计数

    Out[13]: Counter({1: 2, '1': 1, 2: 2, 3: 1}) Out[14]: col...

网友评论

      本文标题:利用字典来完成较大列表中每个元素的计数

      本文链接:https://www.haomeiwen.com/subject/vvfvcktx.html