文章目录

  • 逻辑运算
  • 一个元素的元组
  • setdefault
  • list降维
  • 排序
  • 深拷贝与浅拷贝
  • 交并集
  • is和==

逻辑运算

  • 题目
v1 = 1 or 3 ## >>> 1
v2 = 1 and 3 ## >>> 3
v3 = 0 and 2 and 1 ## >>> 0
v4 = 0 and 2 or 1 ## >>> 1
v5 = 0 and 2 or 1 or 4 ## >>> 1
v6 = 0 or False and 1 ## >>> False
  • 考点
  1. 逻辑运算符

  混合使用的运算顺序:

() => not =>and=>or

  1. or运算符
a or b

  如果a表示False,那么结果就是b
  如果a表示True,那么结果就是a

  1. and运算符
a and b

  如果a表示为True,那么结果就是b
  如果a表示为False,结果就是a

一个元素的元组

  • 题目
a=[1,2,3]
b= [(1),(2),(3)]
c = [(1,).(2,),(3,)]

  问:a,b,c有什么区别?

  a,b里面装的都是int类型数据,c里面装的是元组。

  • 考点

  • ()默认的情况下表示的是优先级。比如说a=(1)a的类型其实是为int

  • 如果python中的元组只存储一个数据。那么元组最后一个元素后面必须跟上一个逗号。

setdefault

  • 题目
"""
将列表内的元素, 根据位数合并成字典
例:list = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536, 4294965646]# 输出:
{
1: [1, 2, 4, 8],
2: [16, 32, 64],
3: [128, 256, 512],
4: [1024, 2048, 4096, 8192],
5: [16384, 32768, 65536],
10: [4294965646]
}
"""
  • 考点

setdefault()函数和get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。基本语法如下:

dict.setdefault(key, default=None)
  • key – 查找的键值。
  • default – 键不存在时,设置的默认键值。

setdefault 如果不存在会在原字典里添加一个 key:default_value 并返回 default_value。

get 找不到 key 的时候不会修改原字典,只返回 default_value。

若要修改字典 dic.setdefault(key,default_value) 等同于 dic[key] = dic.get(key,default_value)。

  • 题解
dic = {}
list = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536, 4294965646]
for item in list:it = str(item)if len(it) < 6:dic.setdefault(len(it), []).append(item)else:dic.setdefault(len(it), []).append(item)
print(dic)

list降维

  • 题目
"""
请尽量用简洁的方法把二维数组转换成一维数组
例如:转换前:list = [[1,2,3], [4,5,6], [7,8,9]]转换后:list = [1,2,3,4,5,6,7,8,9]
"""
  • 考点

  • 解法1

  reduce()函数会对参数序列中元素进行累积。

  函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 12个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

from functools import reduce
list1 = [[1,2,3], [4,5,6], [7,8,9]]
list2 = list(reduce(lambda x, y: x+y, list1))
  • 解法2

  使用itertools.chain.from_iterable将多个迭代器进行高效的连接

from itertools import chain
list1 = [[1,2,3], [4,5,6], [7,8,9]]
list2 = list(chain.from_iterable(list1))
  • 解法3

  利用sum与一个空[ ]相加。

list1 = [[1,2,3], [4,5,6], [7,8,9]]
list2 = sum(list1, [])

排序

  • 题目
"""
将列表按下列规则排序,补全代码:
1. 正数在前,负数在后
2. 正数从小到大
3. 负数从大到小
例如:排序前: [-7, -8, 5, 4, 0, -2, -5]排序后: [0, 4, 5, -2, -5, -7, -8]
"""
  • 考点

  sorted()函数对所有可迭代的对象进行排序操作。

sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的
sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的
list,而不是在原来的基础上进行的操作。

  • sorted语法:
sorted(iterable, cmp=None, key=None, reverse=False)

参数说明:

  • iterable:可迭代对象。
  • cmp :比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key :主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse:排序规则,reverse = True 降序 , reverse = False 升序(默认)。

  排序规则有很多项:

  • 题解
list1 = [-7, -8, 5, 4, 0, -2, -5]
res = sorted(list1, key=lambda x: (x < 0, abs(x)))

  在sorted排序的条件中,只要结果为真就往后排序。

深拷贝与浅拷贝

  • 题目
"""
a = [1,2,3,[4,5], 6]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
d.append(10)
c[3].append(11)
d[3].append(12)请问a,b,c的值为:?
"""
  • 考点

  a=b这一项a与b使用的是同一个list。因为Python中的等号是不拷贝的。

  • c浅拷贝不会copylist中内存地址指向的数据。

  • d深拷贝会copylist中存的地址所指向的数据。

  • 题解

import copy
a = [1,2,3,[4,5], 6]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
d.append(10)
c[3].append(11)
d[3].append(12)print("a:{}; b:{}; c{} d{}".format(a, b, c, d))

  输出结果为:

a:[1, 2, 3, [4, 5, 11], 6];
b:[1, 2, 3, [4, 5, 11], 6];
c[1, 2, 3, [4, 5, 11], 6];
d[1, 2, 3, [4, 5, 12], 6, 10]

交并集

  • 题目
"""
给定两个list,A,B 请用python找出A,B中相同的元素,A, B中不相同的元素
"""
  • 考点
# 所有和交并集相关的操作都去找set集合
A = [1,2,3]
B = [2,3,4]a = set(A)
b = set(B)print(a & b) # 交集 或者是:a.intersection(b)
print(a ^ b) # 异或 或者是:a.symmetric_difference(b)
print(a | b) # 并集 或者是:a.union(b)
print(a - b) # 差集 或者是:a.difference(b)

  结果:

{2, 3}
{1, 4}
{1, 2, 3, 4}
{1}

  利用set还可以将list中重复的元素去掉。比如:

"""
1,2,3,4,5, 能组合成多少个互不相同且无重复的三位数
"""
list1 = []
nums = {1,2,3,4,5}
for i in range(100, 1000):s = set(int(j) for j in str(i))if not s - nums:list1.append(s)
print(len(list1)) # >>> 125

is和==

  is判断的是内存地址,==判断的是值。

list1 = [1,2,3]
list2 = [1,2,3]
list1 is list2 # >>> False
list1 == list2 # >>> True

Python笔试题汇总相关推荐

  1. python面试题及答案2020_2020年python面试题汇总(最新)

    随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.那么提前掌握最新的python面试题技巧,将有助于在求职中取得成功:同时gxlcms作为知名的编程学习网站,有着最新最热门的py ...

  2. 程序员必看 c++笔试题汇总

    ①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题.比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3-& ...

  3. 校招笔试C语言,校招c ++笔试题汇总

    ①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题, 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后 ...

  4. 【Mysql笔试】-常见笔试题汇总

    Mysql常见笔试题汇总 基础知识 排序的规则? 函数的分类?经常使用的函数? 分组查询注意条件? limit使用方法? 创建表时有什么约束条件? mysql常见数据类型? 增加删除修改表结构 常见约 ...

  5. 数字IC设计笔试题汇总(一)

    数字IC设计笔试题汇总(一) 快秋招了,这篇博客记录了一些最近看见的数字IC设计相关的笔试题,仅供参考 1. 用100MHz的时钟A去采样200MHz的时钟B(与A无关)产生的8bit信号是同步采样还 ...

  6. 电信笔试C语言,电信的几个网络方面面试笔试题汇总

    选择题 1.通信网的基本结构形式有五种,以下正确的说法是(C) A.网型.星型.树型.环型.总线型; B.网型.星型.线型.复合型.环型; C.网型.星型.复合型.环型.总线型; D.网型.环型.线型 ...

  7. 高级测试 | Python笔试题

    python笔试题1, python常见的命令行交互自动化模块有哪些?(2分)a) Import module b) Import module1,module2 c) From module imp ...

  8. 北大青鸟java8.0 s1_北大青鸟s1笔试试题(笔试题汇总及所有.docx

    北大青鸟s1笔试试题(笔试题汇总及所有 北大青鸟s1笔试试题(笔试题汇总及所有 篇一:XX_9北大青鸟S1考试笔试 选择题(针对以下题目,请选择最符合题目要求的答案.针对每一道题目,所有答案都选对,则 ...

  9. 仿真软件测试基尔霍夫定律,硬件工程师常见笔试题汇总

    原标题:硬件工程师常见笔试题汇总 一.电路分析: 1.竞争与冒险 在组合逻辑中,在输入端的不同通道数字信号中经过了不同的延时,导致到达该门的时间不一致叫竞争.因此在输出端可能产生短时脉冲(尖峰脉冲)的 ...

  10. 计算机基础word简单面试题,Word、excel、PPT、计算机基础笔试题汇总

    Word.excel.PPT.计算机基础笔试题汇总 (31页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 29.9 积分 Word.excel.PPT. ...

最新文章

  1. Extjs鼠标长按事件(实现长按按钮触发事件的方法:mousedown、mouseup)
  2. 【数字信号处理】相关函数 ( 自相关函数示例 )
  3. apr java_基于 APR 的原生库
  4. 【ABAP系列】SAP ABAP 取两个内表的交集 比较两个内表的不同
  5. 小米 9 开源内核代码,上市即开源
  6. 机器学习之特征选择(feature_selection)
  7. ups维护服务器,UPS电源的在线维护和管理
  8. 用P3P header解决iframe跨域访问cookie
  9. 解决Win10磁盘占用100%
  10. 如何修改论文,能够避开查重?
  11. 《Redis视频教程》(p9)
  12. 31个惊艳的数据可视化作品,让你感受“数据之美”!
  13. 电脑连上Jink后打开Altium Designer弹出Failed to measure TotalIRLen(6)
  14. 如何绘制物理图谱和遗传图谱的对应关系
  15. 【沃顿商学院学习笔记】宏观经济学——03国际移民与城市发展Immigration and Cities
  16. 第8章第15节:制作企业宣传册的公司团队第二页面 [PowerPoint精美幻灯片实战教程]
  17. today JavaScript 笔记和案例
  18. Chrome控制台打印输出彩色调试信息
  19. 开利网络受邀参与广州市候鸟基金会公益节目录制活动
  20. java中的字符串排序

热门文章

  1. Wss3入门(2):设置匿名访问包括匿名阅读和匿名评论,修改评论的字段等。
  2. adb 静默安装_Android静默安装的实现方案(一)
  3. Linux之POSTFIX邮件服务
  4. Leetcode 刷题笔记(二十二) ——贪心算法篇之进阶题目
  5. ASP.NET HttpHandler加水印
  6. Nodejs在Debian和Ubuntu上安装
  7. 转载一篇写的简单易懂的lvs用法
  8. 回顾云计算项目的得与失
  9. Apache 配置文件:.htaccess
  10. android有用代码片段 (一)