面试题:
1、一个字典中有无数个数字典作为值 ,取出所有键?
解答:(1)用到递归方法
def get_keys(d):
keys = []
for k, v in d.items():
keys.append(k)
if isinstance(v, dict):
keys.extend(get_keys(v))
return keys
其中,参数 d
为要取出键的字典。函数中,首先遍历字典的键值对,将键添加到 keys
列表中。如果值是一个字典,就递归调用 get_keys
函数,将返回的键列表添加到 keys
列表中。最后,返回 keys
列表。
(2)使用无线遍历循环求出
class a3:
key_list = []
def get_key(self, dict_a):
"""多维/嵌套字典数据无限遍历,获取json返回结果的所有key值集合"""
if isinstance(dict_a, dict):
for x in range(len(dict_a)):
temp_key = list(dict_a.keys())[x]
temp_value = dict_a[temp_key]
self.key_list.append(temp_key)
self.get_key(temp_value) # 自我调用实现无限遍历
elif isinstance(dict_a, list):
for k in dict_a:
if isinstance(k, dict):
for x in range(len(k)):
temp_key = list(k.keys())[x]
temp_value = k[temp_key]
self.key_list.append(temp_key)
self.get_key(temp_value)
return self.key_list
2、python求出一个无需数组和一个目标值target100?
解答:
#给定一个无序数组nums和一个目标值target,返回数组中两个元素的和为target的算法,时间复杂度为O(1);
def func1(nums,target):
dict1 = {}
for i in range(len(nums)):
num = target - nums[i]
if num not in dict1:
dict1[nums[i]] = i
else:
return (dict1[num],i)
要解释:
3、python去重有几种方法?
(1)set方法
(2)字典去重
(3)用循环查找的方式
if not in
(4)keys()方式
f= list({}.fromkeys(li4).keys())
print (f)等
4、你linu熟悉吗?
熟悉;查看日志tail -f ,chmod 修改权限,ps -ef|grep 服务名称 查看服务名称,ps -aux 查看所有执行进程、kill 杀死进程
5、三表联查方法??
(1)三表隐藏内连接
格式:select * FROM 表1 ,表2,表3 where 表1.关联字段=表2.关联字段 and 表2.关联字段=表3.关联字段 ;
(2)三表普通内连接
格式:select * FROM 表1 inner join 表2 on 表1.关联字段=表2.关联字段 inner join 表3 on 表2.关联字段=表3.关联字段 ;
(3)三表左连接
格式:select * FROM 表1 left join 表2 on 表1.关联字段=表2.关联字段 left join 表3 on 表2.关联字段=表3.关联字段 ;
案例:select * FROM student a left JOIN sc b on a.stu_no=b.stu_no left JOIN course c on b.c_no=c.c_no ;
(4)三表右连接
格式:select * FROM 表1 right join 表2 on 表1.关联字段=表2.关联字段 right join 表3 on 表2.关联字段=表3.关联字段 ;
案例:select * FROM student a right JOIN sc b on a.stu_no=b.stu_no right JOIN course c on b.c_no=c.c_no ;
(5)、先合两个表,在合另一张表
格式:select * from (select 字段名 FROM 表1 right join 表2 on 表1.关联字段=表2.关联字段 )别名,表3 where
合表.关联字段=表3.关联字段
select * from (select a.stu_no,stu_name,sex ,age ,edit ,sc_no ,c_no ,score FROM student a right JOIN sc b on a.stu_no=b.stu_no)s ,course c where s.c_no=c.c_no ;
(6)把三表单成单表理解
(SELECT b.*,c.* FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s 当成单表
select * from (SELECT b.*,c.* FROM sc a,student b,course c WHERE a.stu_no=b.stu_no AND a.c_no=c.c_no)s
6、你负责一个项目,后期要负责之前同事的项目,你能保证质量吗?
可以,
(1)、将现在的需求保证,
(2)、回归测试
(3)、在原有的用例上增补用例,保证项目的稳定性
(4)、实现自动化测试
(5)、从显性需求,隐性需求,关联模块,认为可能出错的模块
标签:sir,面试题,no,keys,关联,____,stu,key,select From: https://www.cnblogs.com/xiaolehong/p/17248433.html