大师兄

心有猛虎 , 细嗅蔷薇


  • 首页

  • 归档

  • 标签

  • 搜索

Python一些不为人知的基础技巧

发表于 2017-10-30 | 阅读次数

startswith()和endswith()参数可以是元组

当检测字符串开头或结尾时,如果有多个检测值,可以用元组作为startswith()和endswith()参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
# bad
if image.endswith('.jpg') or image.endswith('.png') or image.endswith('.gif'):
pass
# good
if image.endswith(('.jpg', '.png', '.gif')):
pass
# bad
if url.startswith('http:') or url.startswith('https:') or url.startswith('ftp:'):
pass
# good
if url.startswith(('http:', 'https:', 'ftp:')):
pass

阅读全文 »

Python字符串分割方法总结

发表于 2017-10-22 | 阅读次数

Python中字符串分割的常用方法是直接调用字符串的str.split方法,但是其只能指定一种分隔符,如果想指定多个分隔符拆分字符串需要用到re.split方法(正则表达式的split方法)。

阅读全文 »

Python通过公共键对字典列表进行排序

发表于 2017-10-19 | 阅读次数

问题描述

我们有一个字典列表,想根据一个或多个字典中的值来对列表排序。
例如,有如下字典列表,根据字典中的x,由大到小排序这个列表:

1
l = [{'x':1, 'y':2}, {'x':2, 'y':3}, {'x':3, 'y':4}]

阅读全文 »

Python反序迭代一个序列(字符串、元组、列表等)

发表于 2017-10-10 | 阅读次数

reversed()内置函数

1
2
for elem in reversed(seq):
print(elem) # do something with elem

reversed()函数的Python等价实现代码:

1
2
3
4
5
6
7
def reversed(seq):
if hasattr(seq, 'keys'):
raise ValueError('mappings do not support reverse iteration')
i = len(seq)
while i > 0:
i -= 1
yield seq[i]

注意,zip()、enumerate()、reversed()这三个内置函数(其实是类的构造方法)分别解决了三个基本的循环问题:并行迭代、计数迭代、反序迭代。

阅读全文 »

Python解决跳台阶、变态跳台阶、矩形覆盖问题

发表于 2017-09-12 | 阅读次数

跳台阶、变态跳台阶、矩形覆盖其实都和斐波那契数列是一类问题。

跳台阶

问题描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

阅读全文 »

Python基于列表实现数据结构栈stack和队列queue

发表于 2017-09-11 | 阅读次数

python中栈的实现

栈是一种后进先出(LIFO)的数据结构,只能在一端(栈顶)插入和删除元素,而python中的列表的append()方法对应的就是向栈顶添加元素,列表的pop()方法对应的就是弹出栈顶元素,因此,python中的列表可以作为栈这种数据结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
>>>

阅读全文 »

Python判断变量类型的两个内置函数type()和isinstance()

发表于 2017-09-10 | 阅读次数

Python中判断对象类型可以用内置函数type():

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> type([]) is list
True
>>> type({}) is dict
True
>>> type('') is str
True
>>> type(0) is int
True
>>> type([])
<class 'list'>
>>> type({})
<class 'dict'>
>>>

type()函数也可以用在自定义的类型上,但是只能得到其本身类型,无法得知其继承自什么类型。

阅读全文 »

Python判断字符串是否是数值型数据方法

发表于 2017-09-10 | 阅读次数

判断字符串是否是数值型字符串

将字符串用float函数转换,如果抛出ValueError异常,则不是有效的数值型字符串。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def is_numeric(s):
try:
float(s)
except ValueError:
return False
else:
return True
print(is_numeric('+100')) # True
print(is_numeric('5e2')) # True
print(is_numeric('-1E-16')) # True
print(is_numeric('3.1416')) # True
print(is_numeric('-123')) # True
print(is_numeric('12e')) # False
print(is_numeric('1a3.14')) # False
print(is_numeric('1.2.3')) # False
print(is_numeric('+-5')) # False
print(is_numeric('12e+4.3')) # False

阅读全文 »

Python3中random模块常用函数用法及示例

发表于 2017-09-10 | 阅读次数

python中random模块是用来生成伪随机数的,其常用函数及示例如下:

实数相关的函数

random.random()

用于生成一个0到1区间的随机浮点数n,0.0 <= n < 1.0

1
2
3
4
5
6
>>> import random
>>> random.random() # 0.0 <= n < 1.0
0.7609624449125756
>>> random.random() * 100 # 0.0 <= n < 100.0
37.96152233237278
>>>

阅读全文 »

Python求斐波那契数列的第n项几种方法

发表于 2017-09-09 | 阅读次数

在数学上,费波那契数列是以递归的方法来定义:

F(0)= 0
F(1)= 1
F(n)= F(n-1)+ F(n-2) (n >= 2)

特别指出:0不是第一项,而是第零项。

阅读全文 »
12…10
大师兄

大师兄

心有猛虎,细嗅蔷薇

94 日志
31 标签
© 2017 大师兄

备案:京ICP备17054041号

由 Hexo 强力驱动
主题 - NexT.Muse
    |           |