Python 编程骚操作- 字符串列表字典和集合的处理

Posted 程序媛秃秃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 编程骚操作- 字符串列表字典和集合的处理相关的知识,希望对你有一定的参考价值。

一、列表、字典和集合处理

你知道几种在列表、字典和集合中筛选符合条件的数据的方式 ?

for 循环筛选出列表中大于0的元素

def filter_positive_by_for_from_list(nums):
    _nums = []
    for num in nums:
        if num > 0:
            _nums.append(num)
    return _nums

if __name__ == '__main__':
    nums = [1, -1, 10, 2, 5, -9, -8, 7]
    _nums = filter_positive_by_for_from_list(nums)
    print(_nums)

执行上述代码,输出结果如下: 遍历所有数据并进行判断,效率较低

filter() 函数筛选列表中符合条件的数据

使用 filter() + lambda

nums = [1, -1, 10, 2, 5, -9, -8, 7]
_nums = list(filter(lambda x: x >= 0, nums))

if __name__ == '__main__':
    print(_nums)

执行上述代码,输出结果如下:

列表解析筛选出列表中符合条件的数据

nums = [1, -1, 10, 2, 5, -9, -8, 7]
_nums = [num for num in nums if num > 0]

if __name__ == '__main__':

    print(_nums)

执行上述代码,输出结果如下:

列表解析的解决方式比 filter() 函数的解决方式要高效,但是这两种方式都远快于通过 for 循环的解决方式

字典解析筛出字典中符合条件的元素

dict_data = 
    "peter": 80,
    "stark": 99,
    "thor": 60,
    "banner": 98,
    "clint": 80

# 筛选出 value 大于 90 的键值对
_dict_data = k : v for k, v in dict_data.items() if v > 90

print(_dict_data)

执行上述代码,输出结果如下

集合解析筛出集合中符合条件的元素

d = [1, 2, 2, 3, -3, 9, 0, 11, 20, 33]
set_data = set(d)

# 删除除以 2 余数为 0 的元素
_set_data = x for x in set_data if x % 2 == 0

print(_set_data)

执行上述代码,输出结果如下:

以上是关于Python 编程骚操作- 字符串列表字典和集合的处理的主要内容,如果未能解决你的问题,请参考以下文章

python数据结构之列表字典元组集合

python-基础 列表 集合 字典

Python 02--列表字典集合

Python基础2 列表字典集合

详解Python数据类型:字符串列表元组字典集合

详解Python数据类型:字符串列表元组字典集合