Study

stay hungry, stay foolish

python的函数

python对passwd进行排序的代码

#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
 Time      :2018/04/10  21:28
 Author    : shanwu
 File Name :0410.py
-------------------------------------------------
"""

with open("passwd","r+") as f:
    j=sorted(f.readlines(),key=lambda i:int(i.split(":")[2]))

with open("newpasswd","w+") as w:
    w.writelines(j)

#查看newpasswd文件
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
nginx:x:1000:1000::/home/nginx:/sbin/nologin

高阶函数

高阶函数就是把函数当做参数传递的函数。

map()的使用

  • map()会根据提供的函数对指定序列做映射。
    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
  • map的形式
    map(function, iterable, ...)
    function是一个函数
    iterable是一个或者多个序列(后面几个序列,前面的函数就要有几个参数传入)
  • python3返回的是一个迭代器

  • 例子

from collections import Iterable


def f(x):
    return x*x

a=map(f,[1,2,3])
print(a)
print(type(a))
print(isinstance(a,Iterable))
for i in a:
    print(i)

# 输出
<map object at 0x000001A72F20DF60>
<class 'map'>
True
1
4
9

reduce()的使用

reduce()的使用方法:reduce(f(x),Itera)。它的形式和map()函数一样。不过参数f(x)必须有两个参数。reduce()函数作用是:把结果继续和序列的下一个元素做累积计算。
- 例子

from functools import reduce

def f(x,y):
    return x*y

a=reduce(f,[1,2,3])
print(a)

#输出
6

filter()的使用

  • filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
  • filter的语法
    filter(function, iterable)
  • 参数
    function – 判断函数。
    iterable – 可迭代对象。

  • 例子

a=filter(lambda x: x % 2==0,[1,2,3,4,5,6])
for i in a:
    print(i)

# 输出
2
4
6
  • sorted()
    sorted()对所有可迭代的对象排序
  • sorted的语法
    sorted(iterable, key=None, reverse=False)
  • 参数说明:
    iterable – 可迭代对象。
    key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
  • 对字典的排序例子
l=dict(a=1,b=3,c=2)
k=sorted(l.items())
print(k)
m=sorted(l.items(),key=lambda i:int(i[1]))
print(m)

#输出
[('a', 1), ('b', 3), ('c', 2)]
[('a', 1), ('c', 2), ('b', 3)]

生成器

  • 生成式
[x*x for x in xrange(10) if x*x%2 == 0]
  • 生成器
  • 方法一:
    (exp for val in collection if condition)
  • 方法二:
    使用yield关键字,包含yield语句的函数会被特地编译成生成器。
    yield可以理解成return,但是并不退出,只是挂起,恢复的时候从yield下面开始执行。
a=(i*i for i in range(4) if i%2==0)
print(next(a))
print(next(a))
#输出
0
4
def f(x):
    for i in range(x):
        yield i

b=f(3)
print(next(b))
print(next(b))
print(next(b))
#输出
0
1
2
阅读更多
上一篇python的文件操作
下一篇python的装饰器
想对作者说点什么? 我来说一句

python时间函数

2011年02月21日 11KB 下载

17、Python help函数命令怎么使用

2018年06月06日 8.49MB 下载

Python全解.pdf

2014年05月28日 1.41MB 下载

python特殊函数

2011年01月24日 3KB 下载

python excel操作函数

2017年04月09日 5KB 下载

python 函数手册

2016年01月07日 314KB 下载

没有更多推荐了,返回首页

关闭
关闭