python面试的100题(12)
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('')
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(''), s, 0)
本文所有名词及函数解释均来自“菜鸟教程”。
python面试的100题(12)的更多相关文章
- python面试的100题(2)
def print_directory_contents(sPath): """ 这个函数接收文件夹的名称作为输入参数 返回该文件夹中文件的路径 以及其包含文件夹中文件的 ...
- python面试的100题(21)
正则表达式 94.请写出一段代码用正则匹配出ip? ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字符串组成. 怎么转化?下面讲解: 二进制:111111111111111111 ...
- python面试的100题(14)
32.请写出一个函数满足以下条件 该函数的输入是一个仅包含数字的list,输出一个新的list,其中每一个元素要满足以下条件: 1.该元素是偶数 2.该元素在原list中是在偶数的位置(index是偶 ...
- python面试的100题(20)
76.递归函数停止的条件? 递归的终止条件一般定义在递归函数内部,在递归调用前要做一个条件判断,根据判断的结果选择是继续调用自身,还是return:返回终止递归.终止的条件:1.判断递归的次数是否达到 ...
- python面试的100题(19)
61.如何在function里面设置一个全局变量 Python中有局部变量和全局变量,当局部变量名字和全局变量名字重复时,局部变量会覆盖掉全局变量. 如果要给全局变量在一个函数里赋值,必须使用glob ...
- python面试的100题(8)
企业面试题 15.python新式类和经典类的区别? (在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性 ...
- python面试的100题(7)
8.将字符串 "k:1 |k1:2|k2:3|k3:4",处理成字典 {k:1,k1:2,...} str1 = "k:1|k1:2|k2:3|k3:4" de ...
- python面试的100题(5)
5.现有字典 d= {'a':24,'g':52,'i':12,'k':33}请按value值进行排序? sorted(d.items(),key=lambda x:x[1]) sorted函数 对由 ...
- python面试的100题(4)
4.打乱一个排好序的list对象alist? import random alist = [1,2,3,4,5] random.shuffle(alist) print(alist) 结果为:[2, ...
随机推荐
- 【55】目标检测之IOU交并比
交并比(Intersection over union) 你如何判断对象检测算法运作良好呢?在本笔记中,你将了解到并交比函数,可以用来评价对象检测算法.在下一个笔记中,我们用它来插入一个分量来进一步改 ...
- 【学习笔记】B站-2019-NLP(自然语言处理)之 BERT 课程 -- 相关课程笔记
BERT 课程笔记 1. 传统方案遇到的问题 BERT的核心在于Transformer,Transformer就类似seq2seq网络输入输出之间的网络结构. 传统的RNN网络:最大的问题,因为不能并 ...
- Elasticsearch配置集群环境
环境选择: 1.方案一:准备三台机器 每一台机器一个节点 2.方案二:准备一台机器 启动三个节点,用端口号区分即可 3.ES启 ...
- string_random
1.随机数 import random 0-1间的随机浮点数,random.random() 指定区间随机浮点数,random.uniform(a,b) 指定区间随机整数(闭区间),random.ra ...
- B. Modulo Equality
当时想到的第一个想法是用拓展欧几里得解方程,求x的最小正解.一发交了之后发现爆long long,因为m是1e9. 因此本题的正解是暴力,保证有解的情况下,那么a数组中的一个数必然对应着b数组中的一个 ...
- 无人机通信协议MAVLink简介
MAVLink MAVLink(Micro Air Vehicle Link,微型空中飞行器链路通讯协议)是无人飞行器与地面站(Ground Control Station ,GCS)之间通讯,以及无 ...
- 【NLP】暑假课作业1 - 中文分词(前向匹配算法实现)
作业任务: 使用98年人民日报语料库进行中文分词训练及测试. 作业输入: 98年人民日报语料库(1998-01-105-带音.txt),用80%的数据作为训练集,20%的数据作为验证集. 运行环境: ...
- SURF特征检测
SERF(speed up robust feature )特征的关键特性: 特征检测 尺度空间:缩放到不同的大小或分辨率仍能检测 选择不变性:光照不变,旋转不变 特征向量:描述为一个特征向量 DDN ...
- HTML5表单验证(4个实用的表单美化案例)
multipart/form-data 在使用包含文件上传控件的表单时,必须使用autocomplete="on" 自动补全功能novalidate 不验证 <form en ...
- vue自定义插件
1.新建js文件 utils.js,自定义方法 let local = { say() { console.log('我是插件里面自定义的方法') } } export default { insta ...