PHP GD编译报错 error: png.h: No such file or directory

回复

chris 发起了问题 1 人关注 0 个回复 2689 次浏览 2020-11-20 10:51 来自相关话题

每日一题-HTTP1.1比之前版本主要更新了什么?

空心菜 回复了问题 2 人关注 1 个回复 2056 次浏览 2020-11-20 10:22 来自相关话题

关于TCP状态的一些思考

回复

peanut 发起了问题 1 人关注 0 个回复 2398 次浏览 2020-11-17 23:25 来自相关话题

2020 GopherCon大会PPT,一睹为快

回复

OS小编 发起了问题 1 人关注 0 个回复 2326 次浏览 2020-11-17 11:26 来自相关话题

每日一题-TCP连接在整个生存期内有哪些状态

空心菜 回复了问题 2 人关注 1 个回复 1747 次浏览 2020-11-17 11:16 来自相关话题

每日一题-Redis 为什么那么快?

空心菜 回复了问题 3 人关注 2 个回复 2323 次浏览 2020-11-05 10:34 来自相关话题

Pyhton列表去重方法总结

Ansible 发表了文章 0 个评论 1548 次浏览 2020-11-02 00:22 来自相关话题

Python列表去重在Python应用编程中,是一种非常常见的应用技巧,有些场景下需要统计出来的列表中去重,避免重复统计。 1. 通过字典去重#!/usr/bin/env python3 ...查看全部

Python列表去重在Python应用编程中,是一种非常常见的应用技巧,有些场景下需要统计出来的列表中去重,避免重复统计。


1. 通过字典去重

#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Description: List to heavy

job = ['Sale', 'Dev', 'OPS', 'Sale', 'Presale', 'Sale', 'Dev', 'Test', 'OPS']
jobs = {}.fromkeys(job).keys()
print(list(jobs))

结果:


['Sale', 'Dev', 'OPS', 'Presale', 'Test']

解释:


Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。


语法:


dict.fromkeys(seq[, value])
  • seq - 字典键值列表。
  • value - 可选参数, 设置键序列(seq)的值。

该方法返回一个新字典, .keys 函数以列表返回一个字典所有的键。



2. 通过集合去重

大家都知道在Python数据结构中集合是天生去重的,所以我们可以利用这一特性来达到列表去重的效果。


格式: list(set(mylist))


#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Description: List to heavy

job = ['Sale', 'Dev', 'OPS', 'Sale', 'Presale', 'Sale', 'Dev', 'Test', 'OPS']
jobs = list(set(job))

由于采用集合,会导致原有的列表排序发生变化,此时可通过如下方法,保持列表原有顺序:


#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Description: List to heavy

job = ['Sale', 'Dev', 'OPS', 'Sale', 'Presale', 'Sale', 'Dev', 'Test', 'OPS']
jobs = list(set(job))
jobs.sort(key=job.index)


3. 使用itertools模块

#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Description: List to heavy
import itertools

job = ['Sale', 'Dev', 'OPS', 'Sale', 'Presale', 'Sale', 'Dev', 'Test', 'OPS']
job.sort()

job_group = itertools.groupby(job)
jobs = []
for k, g in job_group:
jobs.append(k)
print(jobs)

groupby 根据key(v)值分组的迭代器, 将key函数作用于原循环器的各个元素。根据key函数结果,将拥有相同函数结果的元素分到一个新的循环器。每个新的循环器以函数返回结果为标签。



4. 通过列表推导式去重

#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Description: List to heavy

job = ['Sale', 'Dev', 'OPS', 'Sale', 'Presale', 'Sale', 'Dev', 'Test', 'OPS']

jobs = []
[ jobs.append(i) for i in job if i not in jobs]

通过列表推导式,判断在不在新列表中的元素则添加到新列表中。



5. 利用lambda匿名函数和 reduce 函数处理

#!/usr/bin/env python3
# _*_coding:utf-8_*_
# Description: List to heavy
from functools import reduce

job = ['Sale', 'Dev', 'OPS', 'Sale', 'Presale', 'Sale', 'Dev', 'Test', 'OPS']
func = lambda x,y:x if y in x else x + [y]
jobs = reduce(func, [[], ] + job)

Python parallel.futures如何检测失败的任务?

chris 回复了问题 2 人关注 1 个回复 1876 次浏览 2020-10-17 15:00 来自相关话题

PHP5.4.45编译安装报错

空心菜 回复了问题 2 人关注 1 个回复 2468 次浏览 2020-10-16 16:56 来自相关话题

Python如何替换掉字符串里面的单引号和双引号

空心菜 回复了问题 2 人关注 1 个回复 6864 次浏览 2020-09-24 19:02 来自相关话题