25.求出列表所有奇数并构造新列表
a=[1,2,3,4,5,6,7,8,9,10] res=[i for i in a if i%2==1] print(res)
结果为:[1, 3, 5, 7, 9]
26.用一行python代码写出1+2+3+10248
sum=sum([1,2,3,10248]) print(sum)
结果为:10254
方法2
from functools import reduce num1 = reduce(lambda x,y :x+y,[1,2,3,10248]) print(num1)
reduce函数
描述
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
语法
reduce() 函数语法:
reduce(function, iterable[, initializer])
参数
-
function -- 函数,有两个参数
-
iterable -- 可迭代对象
-
initializer -- 可选,初始参数
返回值
返回函数计算结果。
实例
以下实例展示了 reduce() 的使用方法:
def add(x, y) : # 两数相加 return x + y t1=reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5 print(t1) t2=reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数
print(t2)
结果为15,15
参考地址:http://www.runoob.com/python/python-func-reduce.html
27.Python中变量的作用域?(变量查找顺序)
函数作用域的LEGB顺序
1.什么是LEGB?
L: local 函数内部作用域
E: enclosing 函数内部与内嵌函数之间
G: global 全局作用域
B: build-in 内置作用
python在函数里面的查找分为4种,称之为LEGB,也正是按照这是顺序来查找的
28.字符串 "123"
转换成 123
,不使用内置api,例如 int()
方法一: 利用 str
函数
def atoi(s): num = 0 for v in s: for j in range(10): if v == str(j): num = num * 10 + j return num
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,
str() 函数
描述
str() 函数将对象转化为适于人阅读的形式。
语法
以下是 str() 方法的语法:
class str(object='')
参数
- object -- 对象。
返回值
返回一个对象的string格式。
实例
以下展示了使用 str() 方法的实例:
s = 'RUNOOB' str(s) 输出结果:'RUNOOB' dict = {'runoob': 'runoob.com', 'google': 'google.com'}; str(dict) 输出结果:"{'google': 'google.com', 'runoob': 'runoob.com'}"
方法二: 利用 ord
函数
def atoi(s): num = 0 for v in s: num = num * 10 + ord(v) - ord('0') return num
ord函数
描述
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
语法
以下是 ord() 方法的语法:
ord(c)
参数
-
c -- 字符。
返回值
返回值是对应的十进制整数。
实例
以下展示了使用 ord() 方法的实例:
ord('a') 结果为:97
ord('b')
结果为:98
ord('c')
结果为:99
方法三: 利用 eval
函数
def atoi(s): num = 0 for v in s: t = "%s * 1" % v n = eval(t) num = num * 10 + n return num
eval() 函数
描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数
-
expression -- 表达式。
-
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
-
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
实例
以下展示了使用 eval() 方法的实例:
x = 7 eval( '3 * x' ) 结果为:21 eval('pow(2,2)') 结果为:4 eval('2 + 2') 结果为:4 n=81 eval("n + 4")
结果为:85
方法四: 结合方法二,使用 reduce
,一行解决
from functools import reduce def atoi(s): return reduce(lambda num, v: num * 10 + ord(v) - ord('0'), s, 0)