您的位置:首页 > 编程语言 > Python开发

Python -- 如何在列表,字典,集合中筛选数据?

2017-06-20 16:09 1226 查看

过滤掉列表中的负数

数据准备:

from random import randint

# 长度为20的,值范围在-10~10之间的list
lst = [randint(-10, 10) for _ in range(20)]


数据处理

# 1. 列表生成式 (最优)
new_lst = [x for x in lst if x >= 0]
print(new_lst)

# 2. 高阶函数filter
new_lst = list(filter(lambda x: x >= 0, lst))
print(new_lst)

# 3. 遍历
new_lst = []
for e in lst:
if e >= 0:
new_lst.append(e)
print(new_lst)


筛选出字典中value大于90的项

数据准备

from random import randint

# ABCDEFG七位同学的考试分数
dct = {k: randint(80, 100) for k in "ABCDEFG"}


数据处理

# 1. 字典生成式 (最优)
new_dct = {k: v for k, v in dct.items() if v >= 90}
print(new_dct)

# 2. 高阶函数filter
new_dct = dict(filter(lambda item: item[1] >= 90, dct.items()))
print(new_dct)

# 3. 遍历
new_dct = dict()
for k, v in dct.items():
if v >= 90:
new_dct[k] = v
print(new_dct)


筛选出集合中能被3整除的元素

数据准备

st = {10, 2, 3, 13, 15, 35, 39, 66}


数据处理

# 1. 集合生成式 (最优)
new_st = {e for e in st if e % 3 == 0}
print(new_st)

# 2. 高阶函数filter
new_st = set(filter(lambda x: x % 3 == 0, st))
print(new_st)

# 3. 遍历
new_st = set()
for e in st:
if e % 3 == 0:
new_st.add(e)
print(new_st)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pyhton