1  请用自己的算法, 按升序合并如下两个list, 并去除重复的元素:

list1 = [2, 3, 8, 4, 9, 5, 6]
list2 = [5, 6, 10, 17, 11, 2]

答案:

(1)自己的算法?

for x in list1:

for y in list2:

if x == y:

list2.remove(y)

list1 = list1+list2

lsit1 = list1.sort()

(2)

list1[0:0]=list2  或者 list1.extend(list2)

注意:列表方法sort()改变是列表本身序列,没有返回值,sorted函数是生成一个新的有返回值

list1.extend(list2)

print(sorted(set(list1)))
  1. 对比一下dict中 items 与 iteritems

  items会一次性取出所有的值,并以列表返回,iteritems返回的是生成器,通过迭代取出里面的值,一般在数据量大的时候,iteritems会比items效率高些

  1. Python中如何去除list中重复的数据

方法一:

使用set函数

方法二:

a = [1,2,3,4,5,56,6,7,8,8,9]

b = {}

b= b.fromkeys(a)

c= list(b)

  1. 请实现字符串翻转5种方案

Python实现

方法一:

def reverse (s):

rt = ''

for i in range(len(s)-1, -1, -1):

rt += s[i]

return rt

方法二:

def reverse2 (s):

li = list(s)

li.reverse()

rt = "".join(li)

return rt

方法三:

def reverse3 (s):

return s[::-1]

方法四:

def reverse4 (s):

return "".join(reversed(s))

方法五:

from functools import reduce

def reverse5 (s):

return reduce(lambda x,y:y+x,s)

注意:方法一和方法二以及方法三一般人都能写,四和五比较新颖

  1. 在没有第三个参数的情况下,交换2个变量的值

方案一:a,b = b,a

方案二:a = a + b

b = a - b

a = a - b

  1. 实现将2个元组合并成一个字典

a = ('a','b','c','d')

b = (1,2,3,4)

dict(map(lambda x,y:[x,y],a,b))

二:

dict(zip(a,b))

  1. 要求写出一个单例程序

class Dog(object):

__first_new = True

__instance = None

def __new__(cls):

if cls.__first_new:

cls.__instance = object.__new__(cls)

cls.__first_new = False

return cls.__instance

else:

return cls.__instance

a = Dog()

b = Dog()

  1. Python和c和Java的对比

python比较容易学习,语法简单python的库非常丰富,开发速度快,但是python脚本运行效率低,不适合做运行效率要求高的程序,java的语法比较严格,学习的曲线比较长,开发框架很强大,比较适合企业级的应用,和python\java相比,c是最古老的,c是为了代替汇编语言才出现的,一般用c做操作系统方面的开发,linux就是。

  1. 有用过with statement吗?它的好处是什么?
用过,有时我们处理一些文件操作的时候,可能会忘记进行close,而且在处理一些文件时很可能会发生一些异常,需要单独判断,with即上下文管理器,就很好的帮我们处理了这些,而且最棒的是他可以自动处理异常
  1. 是否遇到过python的模块间循环引用的问题,如何避免它?
这是代码结构设计的问题,模块依赖和类依赖
如果老是觉得碰到循环引用,很可能是模块的分界线划错地方了。可能是把应该在一起的东西硬拆开了,可能是某些职责放错地方了,可能是应该抽象的东西没抽象
使用 “__all__” 白名单开放接口
尽量避免 import
  1. 用最简单的方法将二维数组a = [[1,2,3],][4,5,6],][7,8,9],[11,12,13]]变成一维数组a = [1,2,3,4,5,6,7,8,9,11,12,13]

方法一

列表推导式

a1 = [y for x in a for y in x]

方法二

from compiler.ast import flatten

xx = flatten(a)

  1. 请阐述垃圾回收机制的原理

要是被问到就这么和面试官答保你必过:

python的垃圾回收机制和Java一样是自动回收没有用的资源的,采用的是引用计数为主,分带回收为辅的策略,

在python中当程序的引用计数为0的时候,Python就会对它进行回收处理释放资源,也就是引用计数为主,因为程序

的引用每次都会进行记录统计,所以引用计数会占用大量的资源,导致资源无法释放,当出现这种情况下,

python就会把所有循环引用的对象放在一个链表当中,这个链表称为0代,当引用计数器达到一定的阀值时,

Python会对0代的链条进行检查,标出没用的引用对象进行回收释放内存,将剩余的引用对象重新生成一个新的

链条即1代链条,当引用计数器达到一定的阀值,python处理1代的回收对象,将剩余的对象重新生成一个新的链条

即2代链条,当2代处理后如果有对象没有回收,该对象就放在2代链条上

python基础面试的更多相关文章

  1. Python基础面试,看这篇文章画重点吧,Python面试题No1

    为什么有这个系列的文章 一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从Python的面试题出发,分析和解答一些常见的面试题,并且总结一些文字. 每一 ...

  2. python基础面试常见题

    1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之一. 2.通过什么途径学习的Python? 通过自学,包括网上查看一些视频,购买一 ...

  3. 8道Python基础面试练习题

    1.26个字母大小写成对打印,例如:Aa,Bb...... for i in range(26): print(chr(65+i)+chr(97+i)) 2.一个list包含10个数字,然后生成一个新 ...

  4. python基础面试集锦(51-100)

    目录 51.把aaabbbcccdd这种形式的字符串压缩成a3b3c3d2的形式? 52.给你一个字符串'abc',打印出该字符串的所有排列组合? 53.执行以下代码后,x的值为? 54.对于一个非空 ...

  5. 高级测试工程师面试必问面试基础整理——python基础(一)(首发公众号:子安之路)

    现在深圳市场行情,高级测试工程师因为都需要对编程语言有较高的要求,但是大部分又没有python笔试机试题,所以面试必问python基础,这里我整理一下python基本概念,陆续收集到面试中python ...

  6. python基础--概念性问题

    面试其他篇 目录: 头条面试题:https://blog.csdn.net/m0_37947204/article/details/80103151 1.1 python常见基础题 1.遍历文件夹 # ...

  7. 十六. Python基础(16)--内置函数-2

    十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...

  8. 十四. Python基础(14)--递归

    十四. Python基础(14)--递归 1 ● 递归(recursion) 概念: recursive functions-functions that call themselves either ...

  9. Python学习之路(一)之Python基础1

    目录 Python基础初识 1.Python介绍 1.1.Python简介 1.2.Python特点 1.3.Python应用领域 1.4.Python解释器的种类 2.Python基础初识 2.1. ...

随机推荐

  1. java 中的JDK封装的数据结构和算法解析(集合类)----链表 List 之 Vector (向量)

    Vector  看JDK解释(中文翻译)吧: Vector 类可以实现可增长的对象数组.与数组一样,它包含可以使用整数索引进行访问的组件.但是,Vector 的大小可以根据需要增大或缩小,以适应创建  ...

  2. 《Language Implementation Patterns》之 强类型规则

    语句的语义取决于其语法结构和相关符号:前者说明了了要"做什么",后者说明了操作"什么对象".所以即使语法结构正确的,如果被操作的对象不合法,语句也是不合法的.语 ...

  3. python 单向链表实现

    单链表的操作 is_empty() 链表是否为空 length() 链表长度 travel() 遍历整个链表 add(item) 链表头部添加元素 append(item) 链表尾部添加元素 inse ...

  4. django搭建web (二) urls.py

    URL模式: 在app下的urls.py中 urlpatterns=[ url(正则表达式,view函数,参数,别名,前缀)] urlpatterns=[ url(r'^hello/$',hello. ...

  5. python利用twilio模块给自己发短信

    1.访问http://twilio.com/并填写注册表单.注册了新账户后,你需要验证一个手机号码,短信将发给该号码. 2.Twilio 提供的试用账户包括一个电话号码,它将作为短信的发送者.你将需要 ...

  6. 第八条:覆盖equals时请遵守通用约定

    ==是物理相等 equals是逻辑相等 因为每个类的实例对象本质上都是唯一的 ,利用物理相等(==)是指一个实例只能相等于它自己. 利用逻辑相等是(equals)指 一个实例是否和另一个实例的某些关键 ...

  7. day-3 python多线程编程知识点汇总

    python语言以容易入门,适合应用开发,编程简洁,第三方库多等等诸多优点,并吸引广大编程爱好者.但是也存在一个被熟知的性能瓶颈:python解释器引入GIL锁以后,多CPU场景下,也不再是并行方式运 ...

  8. 浏览器端类EXCEL表格插件 - 智表ZCELL产品V1.0.0.1版本发布

    智表的优势 智表兼容与依赖 ZCELL 基于jQuery V1.11.3版本研发,兼容性依赖于jQuery自身的兼容性. 经过验证,目前IE.火狐.谷歌.360等主流浏览器均可以正常使用. 智表下载 ...

  9. SpringCloud的Config:ConfigServer注册到EurekaServer中,变成一个Eureka服务

    一.概念与定义 1.将SpringCloud ConfigServer注册到 EurekaServer,以便ConfigClient以服务的方式引用ConfigServer 2.客户端不再引用 Con ...

  10. linux下的Shell编程(8)自定义函数

    Shell Script中也可以使用自定义的函数,其语法形式如下: functionname() { - }