python面试题(四)
一、数据类型
1、字典
1.1 现有字典 dict={‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按字典中的 value 值进行排序?
sorted(dict.items(),key=lambda x:x[1])
1.2说一下字典和json的区别?
字典是一种数据结构,json是一种数据的表现形式,字典的key值只要能hash就行,json的则必须是字符串
1.3什么是可变类型,什么是不可变类型?
可变不可变是指内存中的值是否可以被改变,不可变是指对象内存块中的值是不可以被改变的,不可变类型有数值、字符串、元组。可变类型则是可以改变的,可变类型有列表和字典。
1.4存入字典里的数据有没有先后顺序?
存入字典中的数据不会自动排序,可以使用sort函数对字典进行排序。
1.5字典推导式?
dict={k:v for (k,v) in iterable}
2、字符串
2.1请反转字符串“sStr”
print("sStr"[::-1])
方法千万种,其他的清自行脑补或搜索
2.2 将字符串”k:1|k1:2|k2:3|k3:4”,处理成Python字典:{k:1, k1:2, … } # 字 典里的K作为字符串处理
str1 = "k:1|k1:2|k2:3|k3:4"
def srt2dict(str1):
dict={}
for items in str1.split("|"):
k,v=items.split(":")
dict[k]=v
return dict
print(srt2dict(str1))
2.3 请按alist中元素的age由大到小排序
alist=[{'name':'a','age':10},{'name':'b','age':20},{'name':'c','age':30}]
alist=[{'name':'a','age':10},{'name':'b','age':20},{'name':'c','age':30}]
def sort_by_age(alist):
return sorted(alist,key=lambda x:x["age"],reverse=True)
print(sort_by_age(alist))
3、列表
3.1 下面代码的输出结果将是什么?
list = ['a','b','c','d','e']
print(list[10:])
输出是一个空列表
1. 上面的代码将输出[],不会产生IndexError错误。就像所期望的那样,尝试用超出成员的个数的index
2. 来获取某个列表的成员。
3. 例如,尝试获取list[10]和之后的成员,会导致IndexError。
3.2 写一个列表生成式,产生一个公差为11的等差数列
print([x*11 for x in range(10)])
3.3 给定两个列表,怎么找出他们相同的元素和不同的元素?
list1 = [1,2,3]
list2 = [3,4,5]
list1 = [1,2,3]
list2 = [3,4,5]
set1 = set(list1)
set2 = set(list2)
print(set1&set2)
print(set1^set2)
3.4 请写出一段Python代码实现删除一个list里面的重复元素?
l1 = ['b','c','d','b','c','a','a']
比较容易记忆的是用内置的set:
l1 = ['b','c','d','b','c','a','a']
print(list(set(l1)))
如果想要保持他们原来的排序:
用list类的sort方法:
l1 = ['b','c','d','b','c','a','a']
# print(list(set(l1)))
l2 = list(set(l1))
l2.sort(key=l1.index)
print(l2)
也可以这样写:
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print(l2)
也可以使用遍历:
l1 = ['b','c','d','b','c','a','a']
l2 = []
for i in l1:
if not i in l2:
l2.append(i)
print(l2)
3.5 给定两个list A ,B,请用找出 A ,B中相同的元素,A ,B中不同的元素
1. A、B 中相同元素:print(set(A)&set(B))
2. A、B 中不同元素:print(set(A)^set(B))
3.6 有如下数组list = range(10)我想取以下几个数组,应该如何切片?
1. [1,2,3,4,5,6,7,8,9]
2. [1,2,3,4,5,6]
3. [3,4,5,6]
4. [9]
5. [1,3,5,7,9]
6. 答: 1. [1:] 2. [1:7] 3. [3:7] 4. [-1] 5. [1::2]
3.7 下面这段代码的输出结果是什么?请解释?
def extendlist(val, list=[]):
list.append(val)
return list
list1 = extendlist(10)
list2 = extendlist(123, [])
list3 = extendlist('a')
print("list1 = %s" %list1)
print("list2 = %s" %list2)
print("list3 = %s" %list3)
# 输出结果:
# list1 = [10, 'a']
# list2 = [123]
# list3 = [10, 'a']
新的默认列表只在函数被定义的那一刻创建一次。当extendList被没有指定特定参数list调用时,这组list的值
随后将被使用。这是因为带有默认参数的表达式在函数被定义的时候被计算,不是在调用的时候被计算。
3.8 将以下3 个函数按照执行效率高低排序
1. def f1(lIn):
2. l1 = sorted(lIn)
3. l2 = [i for i in l1 if i<0.5]
4. return [i*i for i in l2]
5. def f2(lIn):
6. l1 = [i for i in l1 if i<0.5]
7. l2 = sorted(l1)
8. return [i*i for i in l2]
9. def f3(lIn):
10. l1 = [i*i for i in lIn]
11. l2 = sorted(l1)
12. return [i for i in l1 if i<(0.5*0.5)]
按执行效率从高到低排列:f2、f1和f3。
要证明这个答案是正确的,你应该知道如何分析自己代码的性能。
Python中有一个很好的程序分析包,可以满足这个需求。
1. import random
2. import cProfile
3. lIn = [random.random() for i in range(100000)]
4. cProfile.run('f1(lIn)')
5. cProfile.run('f2(lIn)')
6. cProfile.run('f3(lIn)')
3.9 获取1~100被7整除的偶数?
def A():
L=[]
for i in range(1,100):
if i%7==0:
L.append(i)
return L
print(A())
4、元组
1. tuple:元组,元组将多样的对象集合到一起,不能修改,通过索引进行查找,使用括号”()”;
2. 应用场景:把一些数据当做一个整体去使用,不能修改;
5、集合
1. set:set集合,在Python中的书写方式为{},集合与之前列表、元组类似,可以存储多个数据,但
2. 是这些数据是不重复的。集合对象还支持union(联合), intersection(交), difference(差)和
3. sysmmetric_difference(对称差集)等数学运算.
快速去除列表中的重复元素
1. In [4]: a = [11,22,33,33,44,22,55]
2. In [5]: set(a)
3. Out[5]: {11, 22, 33, 44, 55}
交集:共有的部分
a = {71,72,73,74,75}
b = {72,74,75,76,77}
a&b
#{72, 74, 75}
并集:总共的部分
a = {21,22,23,24,25}
b = {22,24,25,26,27}
a | b
#{21, 22, 23, 24, 25, 26, 27}
差集:另一个集合中没有的部分
a = {51,52,53,54,55}
b = {52,54,55,56,57}
b - a
#{66, 77}
对称差集(在a或b中,但不会同时出现在二者中)
a = {91,92,93,94,95}
b = {92,94,95,96,97}
a ^ b
#{11, 33, 66, 77}
持续无限期更新中。。。。。。。。。。。
python面试题(四)的更多相关文章
- python面试题四:Python web框架
1 django.flask.tornado框架的比较? 2 什么是wsgi? WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口.具体的来说, ...
- python公司面试题集锦 python面试题大全
问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...
- python 面试题4
Python面试题 基础篇 分类: Python2014-08-08 13:15 2071人阅读 评论(0) 收藏 举报 最近,整理了一些python常见的面试题目,语言是一种工具,但是多角度的了解工 ...
- 一道Python面试题
无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun(): temp = [lambda x : i*x for i in range(4)] return ...
- 很全的 Python 面试题
很全的 Python 面试题 Python语言特性 1 Python的函数参数传递 看两个例子: Python 1 2 3 4 5 a = 1 def fun(a): ...
- 面试前赶紧看了5道Python Web面试题,Python面试题No17
目录 本面试题题库,由公号:非本科程序员 整理发布 第1题: Flask中的请求上下文和应用上下文是什么? 第2题:django中间件的使用? 第3题: django开发中数据做过什么优化? 第4题: ...
- Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究
Python进阶----反射(四个方法),函数vs方法(模块types 与 instance()方法校验 ),双下方法的研究 一丶反射 什么是反射: 反射的概念是由Smith在1982年首次提出的 ...
- 最新python面试题
1.一行代码实现1--100之和 利用sum()函数求和 2.如何在一个函数内部修改全局变量 利用global 修改全局变量 3.列出5个python标准库 os:提供了不少与操作系统相关联的函数 s ...
- Python面试题 —— 获取列表中位数
中位数是一个可将数值集合划分为相等的上下两部分的一个数值.如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数:如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位 ...
随机推荐
- DevOps之域名-搭建工具
唠叨话 关于德语噢屁事的知识点,仅提供精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. 域名系统DNS(Domain Name System) 关于系统,知识与技能的层次(知道.理解.运用) ...
- 适用于 Windows 的自定义脚本扩展
自定义脚本扩展在 Azure 虚拟机上下载并执行脚本. 此扩展适用于部署后配置.软件安装或其他任何配置/管理任务. 可以从 Azure 存储或 GitHub 下载脚本,或者在扩展运行时将脚本提供给 A ...
- 向kindle传送文件
自从有了kindle以后,只要不是pdf的电子书,基本上都用kindle来看了,毕竟水墨屏还是很护眼的,但是这就带来了向kindle传输文件的问题 绝大部分的电子书用邮件推送就可以解决了,但是还有一些 ...
- 【转】Java学习---内存泄露与溢出的区别
Java内存泄露与溢出的区别 Java内存泄漏就是没有及时清理内存垃圾,导致系统无法再给你提供内存资源(内存资源耗尽): 而Java内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于 ...
- Go语言学习笔记(二)十分钟上手
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 变量&常量 变量 变量名由字母.数字.下划线组成,不能以数字开头. ... var ( A int //默 ...
- 记一次隐秘的XSS漏洞挖掘
前言 在为某客户网站做渗透测试时发现一个有趣的事情.当我访问该网站的某条链接时服务器返回的是404页面.看到这里我当时就下意识的忽略它,但是后来又想了想这也不是完全没有价值,毕竟中间件及其版本都出来了 ...
- IE 8 下sharepoint 2013 难看的字体的解决方案
将 corev15.css 中的有关"Segoe UI","Segoe",Tahoma,移除即可. 一共二处 C:\Program Files\Common F ...
- November 11th, 2017 Week 45th Saturday
Happiness is a direction, not a place. 快乐是一个方向,不是一个目的. Do you remember those moments in your life wh ...
- [BZOJ 3167][HEOI 2013]SAO
[BZOJ 3167][HEOI 2013]SAO 题意 对一个长度为 \(n\) 的排列作出 \(n-1\) 种限制, 每种限制形如 "\(x\) 在 \(y\) 之前" 或 & ...
- [JSOI2009]球队收益
题目 这题好神啊 我们发现一个球队的总比赛场数是确定的,设第\(i\)支球队一共进行了\(s_i\)场比赛 于是这个球队的收益就是\(c_i\times x^2+d_i(s_i-x)^2\) 我们拆开 ...