if i ≥ 1 且 j ≥ 1 , edit(i, j) == min{ edit(i-1, j) + 1, edit(i, j-1) + 1, edit(i-1, j-1) + d(i, j) },当第一个字符串的第i个字符不等于第二个字符串的第j个字符时 , d(i, j) = 1;否则 , d(i, j) = 0 。
def edit_distance(word1, word2):
len1 = len(word1)
len2 = len(word2)
dp = np.zeros((len1 + 1,len2 + 1))
for i in range(len1 + 1):
dp[i][0] = i
for j in range(len2 + 1):
dp[0][j] = j
for i in range(1, len1 + 1):
for j in range(1, len2 + 1):
delta = 0 if word1[i-1] == word2[j-1] else 1
dp[i][j] = min(dp[i - 1][j - 1] + delta, min(dp[i-1][j] + 1, dp[i][j - 1] + 1))
return dp[len1][len2]
edit_distance('牛奶','华西奶')
结果:2
享学课堂浅谈Python序列内建函数都有哪些1、Python类型操作符和内建函数总结
表4.5列出了所有操作符和内建函数,其中操作符顺序是按优先级从高到低排列的 。同一种灰度的操作符拥有同样的优先级 。注意在operator模块中有这些(和绝大多数Python)操作符相应的同功能的函数可供使用 。
表4.5 标准类型操作符和内建函数
操作符/函数
描述
结果a
字符串表示
``
对象的字符串表示
str
内建函数
cmp(obj1, obj2)
比较两个对象
int
repr(obj)
对象的字符串表示
str
str(obj)
对象的字符串表示
str
type(obj)
检测对象的类型
type
值比较
小于
bool
大于
bool
=
小于或等于
bool
=
大于或等于
bool
==
等于
bool
!=
不等于
bool
不等于
bool
对象比较
is
是
bool
is not
不是
bool
布尔操作符
not
逻辑反
bool
and
逻辑与
bool
or
逻辑或
bool
2、Python数值类型操作符和内建函数
一、工厂函数
数值工厂函数总结类(工厂函数) 操作
bool(obj) b返回obj对象的布尔值,也就是 obj.__nonzero__()方法的返回值 。
int(obj, base=10)返回一个字符串或数值对象的整数表 示 , 类似string.atoi();
从Python 1.6起 , 引入了可选的进制参数 。
long(obj, base=10)返回一个字符或数据对象的长整数表 示,类似string.atol(),
从Python1.6起,引入了可选的进制参数 float(obj),
返回一个字符串或数据对象的浮点数 表示 , 类似string.atof() 。
complex(str) or返回一个字符串的复数表示,或 者根据给定的实数,
complex(real, imag=0.0) ?。耙桓隹裳?的虚数部分)生成一个复数对象 。
二、内建函数
1、分类
Python 有五个运算内建函数用于数值运算:
abs(num), coerce(num1,num2), divmod(num1,num2), pow(num1,num2,mod=1)和 round(flt,ndig=0)
其中abs()返回给定参数的绝对值 。如果参数是一个复数, 那么就返回math.sqrt(num.real2 + num.imag2).
coerce()是一个数据类型转换函数 , 不过它的行为更像一个运算符.数coerce()为程序员提供了不依赖Python 解释器,而是自定义两个数值类型转换的方法 。对一种新创建的数值类型来说,这个特性非常有用.函数coerce()仅返回一个包含类型转换完毕的两个数值元素的元组.
divmod()内建函数把除法和取余运算结合起来, 返回一个包含商和余数的元组.对整数来说,它的返回值就是地板除和取余操作的结果.对浮点数来说 , 返回的商部分是math.floor(num1/num2),对复数来说 , 商部分是ath.floor((num1/num2).real).
pow()它和双星号 (**)运算符都可以进行指数运算.不过二者的区别并不仅仅在于一个是运算符,一个是内建函数.在Python 1.5 之前,并没有 ** 运算符,内建函数pow()还接受第三个可选的参数,一个余数参数.如果有这个参数的 , pow() 先进行指数运算,然后将运算结果和第三个参数进行取余运算.这个特性主要用于密码运算,并且比 pow(x,y) % z 性能更好,这是因为这个函数的实现类似于C 函数pow(x,y,z).
推荐阅读
- 如何利用新媒体营销方案,如何利用新媒体营销方案发展
- 关于汽车拍摄有什么作用和好处的信息
- sap数据治理系统,sap数据专员是做什么的
- 小游戏惩罚动作图,小游戏惩罚措施搞笑
- go语言len函数 go语言reflect
- 海尔电视怎么获取地址信息,海尔电视怎么开机
- oracle数据库为啥受欢迎,oracle数据库是干嘛的
- 直播卖货早餐,直播卖货早餐怎么样
- 关于vb.net系统当前时间的信息