标签:多行 error lambda 截取 str tmp ice 布尔 err
实例
以下实例展示了 slice 的使用方法:
myslice = slice(5) # 设置截取5个元素的切片
myslice
slice(None, 5, None)
arr = range(10)
arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[myslice] # 截取 5 个元素
[0, 1, 2, 3, 4]10、divmod()接收2个数字,把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
11、sorted():函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
语法
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
iterable -- 可迭代对象。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值:
返回重新排序的列表。
实例
以下实例展示了 sorted 的最简单的使用方法:
sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5] # 默认为升序
你也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率会稍微高一些。a=[5,2,3,1,4]
a.sort()
a
[1,2,3,4,5]
另一个区别在于list.sort() 方法只为 list 定义。而 sorted() 函数可以接收任何的 iterable。sorted({1: ‘D‘, 2: ‘B‘, 3: ‘B‘, 4: ‘E‘, 5: ‘A‘})
[1, 2, 3, 4, 5]
利用key进行倒序排序example_list = [5, 0, 6, 1, 2, 7, 3, 4]
result_list = sorted(example_list, key=lambda x: x*-1)
print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]要进行反向排序,也通过传入第三个参数 reverse=True:
example_list = [5, 0, 6, 1, 2, 7, 3, 4]
sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]
12、eval():用来执行一个字符串表达式,并返回表达式的值。只能处理单行代码。
13、exec():用来执行一个字符串表达式,但不返回表达式的值。能处理多行代码
比如以下代码:
code=‘‘‘
def foo():
print("run foo")
return 1234
foo()
‘‘‘
exec(code)
res=exec(code)
print(res)
输出结果为:
run foo
run foo
None
也就是exec函数可以执行括号里的表达式,但是没有返回值,或者返回None。
又如:
res=eval("1+3+3")
print(res)
res=exec("1+3+3")
print(res)
输出结果为:
7
None
14、ord():它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
ord(‘a‘)
97
ord(‘b‘)
98
ord(‘c‘)
99
15、chr():返回当前接收整数的对应的 ASCII 字符。
chr(97)
‘a‘
16、sum():求和函数。
17、bytearray():一般来讲字符串里的元素是不能被修改的,但本函数可以通过先吧字符串转变为utf-8字符集,再修改,以达到修改字符串的目的。这个是在内存地址层面的修改,也就是内存地址没有变,不是重新赋值。
17、map(): 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
实例:
以下实例展示了 map() 的使用方法:
def square(x) : # 计算平方数
... return x 2
...
map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
map(lambda x: x 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
18、filter():函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
以下展示了使用 filter 函数的实例:
过滤出列表中的所有奇数:
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
输出结果 :
[1, 3, 5, 7, 9]
用法和map()函数差不多。
19、reduce():reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
比方说对一个序列求和,就可以用reduce实现:
from functools import reduce
def add(x, y):
... return x + y
...
reduce(add, [1, 3, 5, 7, 9])
25
当然求和运算可以直接用Python内建函数sum(),没必要动用reduce。
但是如果要把序列[1, 3, 5, 7, 9]里的元素相乘,reduce就可以派上用场:
from functools import reduce
def fn(x, y):
return x * y
res=reduce(fn, [1, 3, 5, 7, 9])
print(res)
输出为945。
20、pow():求数字的幂数。
pow(8,3)=512。
21、print()
PYTHON学习0030:函数---内置方法----2019-6-23
标签:多行 error lambda 截取 str tmp ice 布尔 err
原文地址:https://blog.51cto.com/13543767/2412475