Python字典和集合编程技巧分享

本文介绍了Python字典和集合的编程技巧,包括如何筛选数据、为元组命名、统计元素频度、排序、查找公共键、保持字典有序及实现历史记录功能。涉及filter、namedtuple、Counter、sorted、集合交集、OrderedDict和pickle等工具的使用。
摘要由CSDN通过智能技术生成

本文主要给大家介绍了关于Python字典和集合编程技巧的相关资料,Python中的字典和集合是两种非常常用的数据结构,它们可以帮助我们更方便地管理和操作数据,需要的朋友可以参考下

1.如何在列表、字典、集合中根据条件筛选数据?

实际案例

  • 案例1:过滤掉列表[3, 9, -1, 10, 20, -2, …] 中的负数
  • 案例2:筛出字典{‘lisi’: 79, ‘Jin’: 88, ‘lucy’: 93, … }中值高于90的项
  • 案例3:筛出集合{77, 89, 34, 20, 21…}中能被3整除的元素
    这类问题比较简单,通常的做法就是依次迭代列表、字典、集合中的每个项,进行条件判断。

但是在python中,还有更高级的方法来解决这类问题,并且更简单高效。

01 案例1:过滤掉列表[3, 9, -1, 10, 20, -2, …] 中的负数

方法一:使用 filter 函数

1

2

3

4

5

6

7

8

from random import randint

# 使用列表解析生成 -10~10 之间的10个元素

data = [randint(-10, 10) for _ in range(10)]

print('原始列表为:' , data)

# filter(function or None, iterable) --> filter object

data_o = filter(lambda x: x >= 0, data)

for each in data_o:

    print(each)

方法二:使用列表解析

1

2

3

4

5

6

from random import randint

# 使用列表解析生成 -10~10 之间的10个元素

data = [randint(-10, 10) for _ in range(10)]

print('原始列表为:',  data)

data_o = [x for x in data if x >= 0]

print(data_o)

02 案例2:筛出字典{‘lisi’: 79, ‘Jin’: 88, ‘lucy’: 93, … }中值高于90的项

1

2

3

4

5

6

from random import randint

# 使用字典解析生成 一个字典

d ={x: randint(60, 100) for x in range(1, 10)}

print(d)

d_o = {k: v for k, v in d.items() if v >= 90}

print(d_o)

03 案例3:筛出集合{77, 89, 34, 20, 21…}中能被3整除的元素

1

2

3

4

5

6

from random import randint

# 使用集合解析生成 -10~10 之间的10个元素

data = {randint(-10, 10) for _ in range(10)}

print('原始集合为:', data)

data_o = {x for x in data if x % 3 == 0}

print(data_o)

2.如何为元组中的每个元素命名,提高程序可读性?

1

2

3

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值