最近刷LeetCode,自己自娱自乐完之后去discussion看大佬们的各种巧妙解法,总是止不住的双击666……加上最近Python3用的比较多(虽然Python实在不推荐跑算法题目,一是运行效率太低,二是Pythonic模式感觉是在作弊,只有在不考虑效率的情况下使用Python实现非Pythonic的算法设计还可以说的过去,且当作熟悉Python了),总结了一下常用的函数及方法,与大家分享也可以自己温故,与C++ STL还是有很多重叠的。

函数

  • next() 函数

返回迭代器的下一个项目。

next(iterator[, default])

iterator -- 可迭代对象

default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。

  1. #case 1
  2. # 首先获得Iterator对象:
  3. it = iter([1, 2, 3, 4, 5])
  4. # 循环:
  5. while True:
  6. try:
  7. # 获得下一个值:
  8. x = next(it)
  9. print(x)
  10. except StopIteration:
  11. # 遇到StopIteration就退出循环
  12. break
  13. 输出:
  14. 1
  15. 2
  16. 3
  17. 4
  18. 5
  19. #case 2
  20. it = iter([1, 2, 3, 4, 5])
  21. while True:
  22. x = next(it, 'a')
  23. print(x)
  24. if x == 'a':
  25. break
  26. 输出:
  27. 1
  28. 2
  29. 3
  30. 4
  31. 5
  32. a
  • filter() 函数

用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

  1. filter(function, iterable)
  2. def is_odd(n):
  3. return n % 2 == 1
  4. newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
  5. 输出:[1, 3, 5, 7, 9]
  6. a = list(filter(lambda x: x % 2 == 0, range(10)))
  7. print(a)
  8. 输出:[0, 2, 4, 6, 8]
  • zip()函数

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

  1. zip([iterable, ...])
  2. >>>a = [1,2,3]
  3. >>> b = [4,5,6]
  4. >>> c = [4,5,6,7,8]
  5. >>> zipped = zip(a,b) # 打包为元组的列表
  6. [(1, 4), (2, 5), (3, 6)]
  7. >>> zip(a,c) # 元素个数与最短的列表一致
  8. [(1, 4), (2, 5), (3, 6)]
  9. >>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
  10. [(1, 2, 3), (4, 5, 6)]
  • any()函数

any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。

元素除了是 0、空、FALSE 外都算 TRUE。

  1. any(iterable)
  2. >>> any(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
  3. True
  4. >>> any([0, '', False]) # 列表list,元素全为0,'',false
  5. False
  • all()函数

all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。

元素除了是 0、空、None、False 外都算 True。

  1. all(iterable)
  2. >>> all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0
  3. True
  4. >>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素
  5. False
  • int()函数

用于将一个字符串或数字转换为整型。

class int(x, base=10)

x -- 字符串或数字。

base -- 进制数,默认十进制。

  1. >>> int('12',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
  2. 18
  3. >>> int('0xa',16)
  4. 10
  5. >>> int('10',8)
  6. 8
  • divmod()函数

把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

  1. divmod(a, b)
  2. >>>divmod(7, 2)
  3. (3, 1)
  • enumerate()函数

用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

  1. enumerate(sequence, [start=0])
  2. >>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
  3. >>> list(enumerate(seasons))
  4. [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
  5. >>> list(enumerate(seasons, start=1)) # 下标从 1 开始
  6. [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
  • eval()函数

用来执行一个字符串表达式,并返回表达式的值。

eval(expression[, globals[, locals]])

expression -- 表达式。

globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。

locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

  1. >>>x = 7
  2. >>> eval( '3 * x' )
  3. 21
  4. >>> a = "123"
  5. >>> type(a)
  6. <class 'str'>
  7. >>> b = eval(a)
  8. >>> b
  9. 123
  10. >>> type(b)
  11. <class 'int'>
  • reduce() 函数

会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:

用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

  1. reduce(function, iterable[, initializer])
  2. >>>def add(x, y) : # 两数相加
  3. ... return x + y
  4. ...
  5. >>> reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5
  6. 15
  7. >>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数
  8. 15

方法

  • 字典get()方法

返回指定键的值,如果值不在字典中返回默认值。

dict.get(key, default=None)

  1. dict = {'Name': 'Zara', 'Age': 27}
  2. print "Value : %s" % dict.get('Sex', "Never")
  3. 输出:Value : Never
  • isalnum()方法

检测字符串是否由字母和数字组成。如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

str.isalnum()

  1. str = "this2009"; # 字符中没有空格
  2. print str.isalnum();
  3. 输出:
  4. True
  5. str = "this is string example....wow!!!";
  6. print str.isalnum();
  7. 输出:
  8. False
  • strip()方法

用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

str.strip([chars])

  1. str = "00000003210abc1230000000";
  2. print(str.strip( '0' )) # 去除首尾字符 0
  3. 输出:
  4. 3210abc0123
  5. str2 = " abc "; # 去除首尾空格
  6. print(str2.strip())
  7. 输出:
  8. abc
  • join()方法

用于将序列中的元素以指定的字符连接生成一个新的字符串。

str.join(sequence)

  1. str = "-";
  2. seq = ("a", "b", "c"); # 字符串序列
  3. print str.join( seq );
  4. 输出:
  5. a-b-c
  • rjust()方法

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

str.rjust(width[, fillchar])

  1. str = "this is string example....wow!!!";
  2. print str.rjust(50, '0');
  3. 输出:
  4. 000000000000000000this is string example....wow!!!

ljust()方法同理

位运算符

与(&)和或(|)运算符就不说了,主要来看看下面几个位运算符:

a = 0011 1100

b = 0000 1101

^ 按位异或运算符:当两对应的二进位相异时,结果为1

(a ^ b) 输出结果 49 ,二进制解释: 0011 0001

~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1

(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。

<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。

a << 2 输出结果 240 ,二进制解释: 1111 0000

>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

a >> 2 输出结果 15 ,二进制解释: 0000 1111

Python3常用函数、方法总结(持续更新…)的更多相关文章

  1. pytorch常用函数总结(持续更新)

    pytorch常用函数总结(持续更新) torch.max(input,dim) 求取指定维度上的最大值,,返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引.比如: demo.sha ...

  2. ORACLE常用函数汇总(持续更新中....)

    在使用ORACLE过程中,把一些常用的函数的相关用法,注意事项进行简单的汇总,便于自己查询参考. DBMS_RANDOM包 dbms_random是一个可以生成随机数值或者字符串的程序包.这个包有in ...

  3. 一些实验中用过的python函数/方法(持续更新)

    衡量运行时间 很多时候你需要计算某段代码执行所需的时间,可以使用 time 模块来实现这个功能. import time startTime = time.time() # write your co ...

  4. java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...

  5. Python语言上机题实现方法(持续更新...)

    Python语言上机题实现方法(持续更新...) 1.[字符串循环左移]给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符'a'.'b' ...

  6. iOS:开发常用GitHub开源项目(持续更新)

    IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...

  7. Python 数据类型,常用函数方法分类

    Python基本数据类型:(int) 字符串(str)列表(list)元组(tuple)字典(dict)布尔(bool) python中可以简单使用 类型(数据)创建或转换数据 例: #字符串转数字 ...

  8. PHP常用函数归类【持续整理中......】

    一.PHP基础语法   变量,常量     严格区分大小写,但内置结构或关键字无所谓(echo)     命名:不能以数字,空格,.来开头,但是可以有汉字,eg:$变量="aa"; ...

  9. Android开发中常用的库总结(持续更新)

    这篇文章用来收集Android开发中常用的库,都是实际使用过的.持续更新... 1.消息提示的小红点 微信,微博消息提示的小红点. 开源库地址:https://github.com/stefanjau ...

  10. PHP常用函数归类【持续整理】

    学习了这么久PHP,基础知识总感觉不牢靠,尤其是数组,字符串函数的应用,全部手敲过次手,做出总结都是基础,在回顾一下吧. 一.PHP基础语法 变量,常量     严格区分大小写,但内置结构或关键字无所 ...

随机推荐

  1. 1ci

  2. Oracle 11g 测试ogg中断之后,重新同步操作

    测试ogg中断之后,重新同步操作 2018-06-07 17:11 779 1 原创 GoldenGate 本文链接:https://www.cndba.cn/leo1990/article/2839 ...

  3. 浅谈redis的HyperLogLog与布隆过滤器

    首先,HyperLogLog与布隆过滤器都是针对大数据统计存储应用场景下的知名算法. HyperLogLog是在大数据的情况下关于数据基数的空间复杂度优化实现,布隆过滤器是在大数据情况下关于检索一个元 ...

  4. java8中optional和.stream().map()

    使用optional的好处:是一个可以包含或不可以包含非空值的容器对象,更加友好的处理程序中的空对象. Optional<T>有方法 isPresent() 和 get() 是用来检查其包 ...

  5. from jobscrawler_qianchengwuyou.items import JobscrawlerQianchengwuyouItem

    -- coding: utf-8 -- import scrapy from jobscrawler_qianchengwuyou.items import JobscrawlerQianchengw ...

  6. tfs增加用户

    1.windows上添加用户 2.tfs对应项目添加该用户 3.注意: 要设置服务器对应的本地安全策略   从网络上允许该用户访问

  7. sticky

    最近有点忘了position几个取值的内容,在这里简单总结一下. position的含义是指定位类型,取值类型可以有:static.relative.absolute.fixed.inherit和st ...

  8. easyui datagrid 后台返回所有数据,前台分页

    function pagerFilter(data) { if (typeof data.length == 'number' && typeof data.splice == 'fu ...

  9. C语法简单测试

    1.未初始化的枚举变量 /* uninitialized-enum.c */ #include <stdio.h> , black, blue}; int main(void) { enu ...

  10. QT之setting注册表项

    1.头文件 #include <QSettings> 2.read注册表项 void MainWindow::readSettings() // 读取窗口设置 { QSettings se ...