zhglinux 2020-01-03
题目1 Python实现float数的四舍五入
def panf(f): if isinstance(f,float): #判断输入的数是否为float类型 isinstance(object, classinfo) 判断实例是否是这个类或者object是变量 b=int(str(f).split(‘.‘)[0]) #对该数先转换为字符串 然后进行分割,以‘.’进行分割 取得小数点前半部分 c=str(f).split(‘.‘)[1] #分割后取小数点后半部分 if int(c[0:1])>=5: #判断分割后的后半部分数据第一个数是否大于5 ,比较前先转换为int类型 b+=1 #小数点后半部分第一个数大于5 就将整数部分加1 else: return b #否则直接返回整数部分 return b else: return (u‘不是float类型参数‘) print(panf(4.5999))
题目2 Python 根据key对字典进行排序
dic={‘name‘:‘laohu‘,‘age‘:‘twenty‘,‘height‘:‘178cm‘} res =sorted(dic.items(),key=lambda x:x[0],reverse=True) print("按照key降序排序后:",res) result=sorted(dic.items(),key =lambda x:x[1],reverse=False) print("按照value升序排序后",result) #key=lambda x:x[0], reverse=True) # 按照第0个元素降序排列 # dic.items() 为待排序的对象; # key=lambda x: x[0] 为对前面的对象中的第一维数据(即key)的值进行排序。 # key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。 # reverse=True 将元素进行降序排序 key=lambda x:x[0] 第0个元素 也就是按照key值排序 # reverse=TFalse 升序排序
题目3: 给定一个非空正整数数组,把数值出现的次数存在一个新的字典中,并按照出现的次数排序
def dict_sort(array_L): dic = {} for i in array_L: #依次迭代给定数组中的元素 if array_L.count(i) > 0: #list.count()统计元素在列表中出现的次数 dic[i] = array_L.count(i) #字典保存元素和其出现的个数,(key,value)=(元素i,个数count(i)) #对dic中的元素按照个数的多少降序排序 newdic = sorted(dic.items(), key=lambda items: items[1], reverse=True) return newdic # 返回降序排序后的结果 array_L = [1, 1, 1, 6,6, 6, 7,7, 9, 3] res=dict_sort(array_L) print("结果:",res)
备注:
python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。
在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,‘a‘]需要4个指针和四个数据,增加了存储和消耗cpu。
numpy中封装的array有很强大的功能,里面存放的都是相同的数据类型
题目4: 在一个整数数组中找到两个数之和等于目标值,并把两数下标存在list中返回
#给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。#你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。#示例: 给定 nums = [2, 7, 11, 15], target = 9#因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
class Solution(): def getSum(self,nums,target): nums_index=[] #用于存储目标数据,所获取的下标存放在该列表 for i in range(len(nums)): #获取数组长度,依次迭代每个元素 循环次数 for j in range(i+1,len(nums)): # 循环,使用当前元素和其之后的每个元素依次加 比较和目标值是否相同 if nums[i]+nums[j]==target: nums_index.append(i) # 满足条件时,追加元素的下标 nums_index.append(j) return nums_index #返回结果 if __name__=="__main__": nums=[2,7,8,9,11,4] target=15 l=Solution() res=l.getSum(nums,target) print("结果:",res)