python面试,日更
l1 = [11, 2, 3, 22, 2, 4, 11, 3]
去重并保持原来顺序
# 集合方法
l2 = list(set(l1))
l2.sort(key=l1.index) # 按照l1索引排序
print(l2) # 列表
l3 = []
for item in l1:
if item not in l3:
l3.append(item)
print(l3)
答案
l4 = [
{"name":"lmj11","age":11},
{"name":"lmj44","age":44},
{"name":"lmj33","age":33},
{"name":"lmj77","age":77},
{"name":"lmj66","age":66},
{"name":"lmj55","age":55},
]
# 使用lambda表达式
l4.sort(key= lambda x:x["age"]) # 方式一
l4=sorted(l4,key=lambda x:x["age"]) # 方式二
print(l4) # 其他方式
# def tmp(x):
# return x["age"]
# l4.sort(key=tmp)
# print(l4)
答案
def extend_list(v, li=[]):
li.append(v)
return li list1 = extend_list(10)
list2 = extend_list(123, [])
list3 = extend_list('a') print(list1)
print(list2)
print(list3) print(list1 is list3)
答案:
[10,'a']
[123,]
[10,'a']
答案
问以下代码的输出结果是什么?
list1 = ["a", "b", "c", "d", "e"]
print(list1[10:])
答案:
# 列表的切片操作
print(list1[3:]) # ['d', 'e']
print(list1[-3:]) # ['c', 'd', 'e']
print(list1[:-3]) # ['a', 'b']
print(list1[:3]) # ['a', 'b', 'c']
答案
list1=["a","b","c","d","e"] # 实现打乱列表顺序
# 分别在原有列表和新建列表基础上 #请分别阐述潜复制,深复制和切片复制列表的特点
import random random.shuffle(list1)
print(list1) # ['c', 'a', 'b', 'd', 'e'] # 以下给出该函数的官方解释,即打乱原本表格,返回None
help(random.shuffle)
"""
shuffle(x, random=None) method of random.Random instance
Shuffle list x in place, and return None. Optional argument random is a 0-argument function returning a
random float in [0.0, 1.0); if it is the default None, the
standard random.random will be used.
"""
直接赋值:其实就是对象的引用(别名)。
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。(字典或多层列表可明显看出区别)
深拷贝(deepcopy): copy 模块的 deepcopy 方法,开辟了一块新的内存空间,完全拷贝了父对象及其子对象。
list1=["a","b","c","d","e"] # 列表潜拷贝
list2=list1.copy()
print(list1) # ['a', 'b', 'c', 'd', 'e', 'fff']
print(list2) # ['a', 'b', 'c', 'd', 'e']
list1.append("fff")
print(list1) # ['a', 'b', 'c', 'd', 'e', 'fff']
print(list2) # ['a', 'b', 'c', 'd', 'e']
print('分割线'.center(50,'='))
# 列表深拷贝
import copy
list3 = copy.deepcopy(list1)
print(list1) # ['a', 'b', 'c', 'd', 'e', 'fff']
print(list3) # ['a', 'b', 'c', 'd', 'e', 'fff']
list1.append("ggg")
print(list1) # ['a', 'b', 'c', 'd', 'e', 'fff', 'ggg']
print(list3) # ['a', 'b', 'c', 'd', 'e', 'fff']
# 列表换成多层时的潜拷贝
list2=list1.copy()
print(list1) # ['a', 'b', 'c', 'd', 'e', 'fff']
print(list2) # ['a', 'b', 'c', 'd', 'e']
list1[3].append("fff")
print(list1) # ['a', 'b', 'c', ['d', 'e', 'fff']]
print(list2) # ['a', 'b', 'c', ['d', 'e', 'fff']]
综上所述,可理解对象A浅拷贝B,就是A对B的一种内存地址的引用,无论B引用的值如何改变,A均可以取得最新值
问:执行完下面的代码后, l,m的内容分别是什么?
"""
def func(m):
for k,v in m.items():
m[k+2] = v+2
m = {1: 2, 3: 4}
l = m # 浅拷贝
l[9] = 10
func(l)
m[7] = 8
print("l:", l)
print("m:", m)
# python3.6 中会报错
# 在迭代一个列表或字典的时候,不能修改列表或字典的大小!
答案
# 将list1 拼接成字符串
list1 = [11,22,33]
new_list = "".join([str(i) for i in list1])
print(new_list)
答案
Python中字符串的格式化(%s,format),一般用哪种?为什么?
编写Python脚本,分析xx.log文件,按域名统计访问次数 xx.log文件内容如下:
https://www.sogo.com/ale.html
https://www.qq.com/3asd.html
https://www.sogo.com/teoans.html
https://www.bilibili.com/2
https://www.sogo.com/asd_sa.html
https://y.qq.com/
https://www.bilibili.com/1
https://dig.chouti.com/
https://www.bilibili.com/imd.html
https://www.bilibili.com/ 输出:
4 www.bilibili.com
3 www.sogo.com
1 www.qq.com
1 y.qq.com
1 dig.chouti.com
import re
from collections import Counter # 1. 读取出内容
with open('yuming.log','r',encoding='utf-8')as f:
data = f.read() # 2. 取域名信息
res = re.findall(r'https://(.*?)/.*?',data)
# print(res) # 3. 统计
dic = {}
for i in res:
if i not in dic:
dic[i] = 1
else:
dic[i] += 1 # 4. 排序(二种方法)
# print(dic) # {'www.sogo.com': 3, 'www.qq.com': 1, 'www.bilibili.com': 4, 'y.qq.com': 1, 'dig.chouti.com': 1}
# dic = Counter(res)
# print(dic) # Counter({'www.bilibili.com': 4, 'www.sogo.com': 3, 'www.qq.com': 1, 'y.qq.com': 1, 'dig.chouti.com': 1})
# for k in dic.items():
# print(k)
'''
('www.sogo.com', 3)
('www.qq.com', 1)
('www.bilibili.com', 4)
('y.qq.com', 1)
('dig.chouti.com', 1)
''' # 方法一
# res2 = sorted(dic,key=lambda x:dic[x],reverse=True)
# print(res2) # ['www.bilibili.com', 'www.sogo.com', 'www.qq.com', 'y.qq.com', 'dig.chouti.com']
# for k in res2:
# print(dic[k],k) '''
4 www.bilibili.com
3 www.sogo.com
1 www.qq.com
1 y.qq.com
1 dig.chouti.com ''' # 方法二
# print(dic.items()) # dict_items([('www.sogo.com', 3), ('www.qq.com', 1), ('www.bilibili.com', 4), ('y.qq.com', 1), ('dig.chouti.com', 1)])
res2 = sorted(dic.items(), key=lambda x:x[1], reverse=True)
# print(res2) # [('www.bilibili.com', 4), ('www.sogo.com', 3), ('www.qq.com', 1), ('y.qq.com', 1), ('dig.chouti.com', 1)]
for k,v in res2:
print(v,k)
'''
4 www.bilibili.com
3 www.sogo.com
1 www.qq.com
1 y.qq.com
1 dig.chouti.com '''
答案
待续。。。
python面试,日更的更多相关文章
- 比Python、Java更快的 Go 语言,能否称霸江湖?
关注之后加星标,江湖要事早知道 文章来源:jb51.net 有一种语言堪称比语言排行榜前五热门选手的Python.Java更快,它就是GO语言. Go于2009年11月正式宣布推出,成为开放源代码 ...
- Python面试 【315+道题】
Python面试 [315+道题] 第一部分 Python基础篇(80题) 为什么学习Python? 因为看到python的发展趋势,觉得需要与时俱进,第一点,python开发速度极快,能快速完成一个 ...
- Python面试基础篇
1. 为什什么学习Python? Life is short, You need Python 2. 通过什什么途径学习的Python? pass 3. Python和Java.PHP.C.C#.C+ ...
- Python 面试中 8 个必考问题(转载)
Python 面试中 8 个必考问题 1.下面这段代码的输出结果是什么?请解释. def extendList(val, list=[]): list.append(val) return list ...
- 常见的25个python面试问答
常见的25个python面试问答 说到好用简洁的大数据技术,除了Hadoop.R等等,Python也是其中熠熠生辉的一员,因而广受企业和商家的青睐.求职季,不少应聘者在面试相关职业时都被要求掌握Pyt ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- Python面试简介及并行并发
今天的分享内容大体如下: 一. 面试 1. 什么是面试 2. 优秀的面试 二. Python综述 1. Python设计哲学及版本变迁 2. Python发展现状及其他语言使用场景 3. GIL 4. ...
- Python 面试问题
Python 面试问题 最近正在团队内部普及 Python 语言,有些刚接触 Python 语言的工程师在概念上有很多混淆的地方,刚好看到这篇文章:Python面试问题,里面列举的问题都是关于 Pyt ...
- 【16】进大厂必须掌握的面试题-100个python面试
我们整理了Python面试的主要问题清单,分为7个部分: 基本面试问题 OOPS面试问题 基本的Python程序 Python库面试问题 数据分析面试题 选择题(MCQ) 基本的Python面试问题 ...
- Windows 7 Ultimate(旗舰版)SP1 32/64位官方原版下载(2011年5月12日更新版)
MSDN于2011年5月12日,最新发布简体中文Windows 7 Ultimate 旗舰版 SP1 DVD镜像安装包,分32位和64位两个版本.最新发行代号分别是:677486(32位),67740 ...
随机推荐
- visual stdio使用
现在转换使用visual stdio,因为很多和以前的快捷键不同,也不打算换了,这样可移动性应该更好吧. 1.注释代码, 首先按下ctrl + k,然后再按下ctrl + c 2.取消注释,首先按下c ...
- [转]js add month 加n月
本文转自:http://stackoverflow.com/questions/5645058/how-to-add-months-to-a-date-in-javascript/5645126 I ...
- 实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法
最近在本地搭建的LNMP的开发环境.为了开发的时候不影响前端的正常开发就屏蔽的PHP里面php.ini中的一些错误提示.但是这样一来,就影响到了后端开发的一些问题比如不能及时调试开发中的一些问题 ng ...
- JavaFX--第3天窗口布局
1.windows之间的交互 2.关闭程序 3.布局镶嵌 1.windows之间的交互 我们要实现“确定”.“取消”之类的功能:就像我们平时使用Word的时候要关闭会提示要不要保存的信息. 步骤如下: ...
- 零度4W1H提问规则
WHAT:您现在的需求和目的是什么,请按条理描述清楚. WHERE:在什么平台.环境和工具下发生此问题. WHEN:何时发生的该问题,该问题是否能够重现. WHY:为什么不能通过搜索引擎来解决您的问题 ...
- 连接数据库报错:1130-Host 'xxx' is not allowed to connect to this MySQL server解决
出现这个问题的同学都很奇怪,为啥用localhost就可以连接上,但是使用本地ip就不行.出现这个问题的原因就是mysql未开启mysql远程访问权限导致. 这时候我们就用cmd去访问下你的mysql ...
- 软件测试技术第一次试验之——JUnit的安装与使用
众所周知,在一个大型的软件项目中,测试是必不可少的.传统的测试方法往往要自己编写测试函数再结合测试用例进行验证,这样会显得比较繁琐.所以我们可以使用JUnit框架进行测试. 使用junit的好处就是这 ...
- 国内外著名B2C系统介绍兼比较【收藏版】
一.国内知名B2C系统 1.Shopex国内最大的电子商务系统,有各种辅助工具,php开发,免费但不开源,网店模板众多,较适合有淘宝店的卖家.网址:www.shopex.cn 2.ECshop免费且开 ...
- BZOJ3329: Xorequ(二进制数位dp 矩阵快速幂)
题意 题目链接 Sol 挺套路的一道题 首先把式子移一下项 \(x \oplus 2x = 3x\) 有一件显然的事情:\(a \oplus b \leqslant c\) 又因为\(a \oplus ...
- spring-cloud构架微服务(2)-全局配置二
接上篇,实际项目中,可能会遇到有些配置项,例如:邮件地址.手机号等在服务已经上线之后做了改动(就当会出现这种情况好了).然后你修改了配置信息,就得一个一个去重启对应的服务.spring-全局配置提供了 ...