常见例题
Posted 542684416-qq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见例题相关的知识,希望对你有一定的参考价值。
‘‘‘
第一题:去除列表中的重复元素
1.列表中的元素有重复,需要去掉重复元素
2.要求保留原来的元素顺序
3.不需要返回值,直接修改原列表即可
‘‘‘
lt = [3,2,1,8,4,3,4,5,5,6,6,7] def duplicate_removal(lt): lt1 = [] for i in lt: if i not in lt1: lt1.append(i) return lt1 print(duplicate_removal(lt))
‘‘‘
第二题:计算字符串中所有数字的和
1.字符串中只有小写字母和数字
2.数字可能连续,也可能不连续
3.连续数字要当做一个数处理
如:‘12abc34de5f‘ => 12 + 34 + 5 => 51
‘‘‘
s = ‘12abc34de5f‘ def sum_of_num(s): ret = 0 num = 0 for i in s: if i.isdecimal(): a = int(i) ret = ret * 10 + a else: num += ret ret = 0 num += ret return num print(sum_of_num(s))
‘‘‘
第三题:返回列表中的第二小的元素的下标
1.参数是一个列表,元素全部是整数
2.返回第二小的元素的下标
‘‘‘
lt = [5,6,7,3,1,4,9] def seconde_min(lt): a =sorted(lt) b = a[1] c = lt.index(b) return c print(seconde_min(lt))
‘‘‘
第四题:写出冒泡排序函数,可以排序任意类型的元素,可以逆序
1.实现冒泡排序算法
2.可以排序任意类型的元素
3.能够通过参数设置进行逆序,默认升序
‘‘‘
def list_sort(lt, key=None, reverse=False): for i in range(len(lt)-1): for j in range(len(lt)-i-1): if key: if reverse: if key(lt[j]) < key(lt[j+1]): lt[j] , lt[j+1] = lt[j+1] , lt[j] else: if key(lt[j]) > key(lt[j + 1]): lt[j], lt[j + 1] = lt[j + 1], lt[j] else: if reverse: if lt[j] < lt[j + 1]: lt[j], lt[j + 1] = lt[j + 1], lt[j] else: if lt[j] > lt[j + 1]: lt[j], lt[j + 1] = lt[j + 1], lt[j] return lt lt = [ {‘name‘: ‘xiaoming‘, ‘age‘: 18}, {‘name‘: ‘xiaoming‘, ‘age‘: 15}, {‘name‘: ‘xiaoming‘, ‘age‘: 16}, {‘name‘: ‘xiaoming‘, ‘age‘: 17} ] print(list_sort(lt, key=lambda d: d[‘age‘], reverse=False))
‘‘‘
第五题:自己实现一个字符串的find函数
1.在一个字符串中查找另一个字符串
2.找到了返回第一次出现的位置
3.没找到返回-1
4.参数s1为源字符串,参数s2为要查找的字符串
‘‘‘
s1 = ‘asdf5g4f5d2cx54‘ s2 = str(input(‘请输入一个字符串:‘)) def index_of_str(s1, s2): if s2 in s1: return s1.index(s2[0]) else: return -1 print(index_of_str(s1,s2))
导入需要的包
from functools import reduce from collections import Counter import re from datetime import datetime import time
‘‘‘(10分)
简述下列关键字或变量的作用
1.global和nonlocal的作用
2.pass、return、break、continue的作用
3.*args、**kwargs的作用
‘‘‘
def short_answer(): return ‘‘‘ global:全局变量,使用当前作用域作用于全局 nonlocal:局部变量,声明使用的不是本地变量,是外部函数的局部变量 pass:占位符号,保证程序运行顺畅,不会报错 return:当函数在执行的时候遇到return时,立即停止运行,并返回结果 break:当函数运行到break时,函数立即结束,不再往下继续进行 continue:函数执行到continue时,会结束本次循环,继续进行下次循环 *args:是一个元组,存放多余的位置参数 **kwargs:是一个字典,存放多余的关键字参数 ‘‘‘
‘‘‘(15分)
1.求列表中所有数字元素的和
2.列表中的元素都是整数
3.列表中的元素可能重复,需要去掉重复元素
4.需要使用高级函数实现求和
5.返回计算的结果
‘‘‘
def sum_of_list(lt): lt1 = [] for i in lt: if i not in lt1: lt1.append(i) num = reduce(lambda x,y:x+y,lt1) return num # lt = [1,2,3,8,6,4,8,7,2,4,5,4,6] # print(sum_of_list(lt))
‘‘‘(15分)
1.传入一个列表,列表中元素可能是任意类型
2.使用高级函数完成非字符串元素的删除
3.然后按照字符串的长度进行降序排序
4.返回新的排序后的列表
‘‘‘
def sort_list(lt): lt1 = list(filter(lambda x :isinstance(x,str),lt)) lt2 = sorted(lt1,key=lambda x:len(x),reverse=True) return lt2 # lt = [12,‘sdfw‘,58,‘qwy‘,{‘name‘:6,‘age‘:20},‘rejdj‘] # print(sort_list(lt))
‘‘‘(15分)
1.返回一个字符串中出现次数第二多的单词
2.字符串中可能有英文单词、标点、空格
3.字符串中的英文字符全部是小写
‘‘‘
def max_count_word(s): a = re.compile(r‘W‘) b = a.sub(‘ ‘,s) c = b.split() print(c,type(c)) d = dict(Counter(c)) e = d.items() lt = sorted(e,key=lambda x :x[1],reverse=True) print(lt) return lt[1][0] s = ‘ if you tell me love his, we want to say : i love you too!‘ print(max_count_word(s)) ?