常见的python自动化测试的面试题目
1. 给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)
1 | 方法一: |
方法二:(使用set集合操作)
1 | def data_sort(data,n): |
代码难点解读:1
2
3
4
5
6
7
8
9d.items():
1. 它的数据类型是:dict_items 以列表返回可遍历的(键, 值) 元组数组
2. 注意:返回不是列表:是一个存放多个元祖的高仿列表,[(key,value),(key,value),(key,value)...]
3. 不能用下标,可用for循环
sorted(d.items(),key=lambda item:item[1],reverse=True)
1. sorted(iterable,key,reverse)函数,参数key来决定我们根据那个字段对列表元素进行排序,
2. sorted(iterable,key,reverse)函数返回一个新列表,其中包含按升序排列的iterable中的所有项
3. key=lambda 元素: 元素[字段索引]
4. lambda item:item[1] 表示对元素第二个字段(就是 value)进行排序
2. 从字符串‘abcdba‘中找出第一个不重复的字符,方法不限
方法一: 使用count()函数 (查看元素在数据中出现的次数)1
2
3
4
5
6
7
8
9
10
11
def find_ele(data):
for i in data:
if data.count(i)==1: #元素在数据data出现的次数
print('第一个不重复的字符是:{}'.format(i))
break
if __name__ == '__main__':
s= input('请输入随意的字符串:')
find_ele(s)
方法二: 使用split()切割函数(切割后 长度为2 说明该元素只存在一个)1
2
3
4
5
6
7
8
9
10
11def find_ele(data):
for i in data:
if len (data.split (i)) == 2:
# data='abcdba' data.split(a)===>['','bcdb',''], data.split(b)===>['a','cd','a']
print ('第一个不重复的字符是:{}'.format (i))
break
if __name__ == '__main__':
s = input ('请输入随意的字符串:')
find_ele (s)