练习python题目小记(六)

一,返回字典的键值

核心代码:

sorted_keys = sorted(dict_obj.keys())

sorted_values = [dict_obj[k] for k in sorted_keys]

return [sorted_keys, sorted_values]

第一行:dict_obj.keys()是提取字典中所有的键,然后使用sort将所有的键从小到大进行排列(数字的话,就比大小,字母的话,比较ASCII码),最终赋值给等号前面的玩意(是个列表)。

第二行:dict_obj[k] for k in sorted_keys是利用列表推导式,将键所对应的值全部提取出来。

第三行:将键和值排列好以后,以列表的形式输出。

二,计算字符串中的音节数

核心代码:

return word.count('-') + 1

string.count(string1)用于返回前面的字符串中string1的个数。

三,格式化数字

题目的要求就是凑够后往前每个三个数字,添加一个逗号

核心代码:

s = str(number)

out = []

for i, ch in enumerate(reversed(s)):

if i and i % 3 == 0:

out.append(',')

out.append(ch)

return ''.join(reversed(out))

代码的思路就是先将数字赋值给字符串,然后将字符串进行翻转,翻转后每隔三个数字添加一个逗号,然后再翻转过来,拼接一下就成了。

for i, ch in enumerate(reversed(s)):重点讲一下这个代码:enumerate是将字符串的中元素的下标以及他们对应的元素整出来然后将下标赋值给i,将对应的值赋值给ch。这里的reversed是用于反转的,他是一个一个蹦出来的,不会直接返回一个完整的反转的字符串,所以最后需要一个join。

四,最小公倍数

核心代码:

a = 1

for i in range(2, n + 1):

a = a * i // math.gcd(a, i)

return a

题目要求是求1到N的最小公倍数。

首先要知道的是解题思路,就是先求1和2的最小公倍数然后用他们的最小公倍数再跟3求最小公倍数,以此类推。计算最小公倍数的方法是两个数的乘积除以两个数的最大公因数。最大公因数可以直接使用math中的gcd方法进行计算。

五,十六进制转换为二进制

核心代码:

result= bin(hex_number).replace("b","")[1:]

if len(result)%8 !=0:

result1="0"+result

return result1

else:

return result

上述代码实现的是将十六进制转化为二进制。

其中的bin是将任意整数(不管是几进制的)转化为一个字符串形式的二进制(会在前面加上一个0b)也就是说我们使用bin转化过后需要将前面的0b给删掉,可以用上面的方法(顺道复习一下replace的用法),replace就是进行替换,语法是:str.replace(old,new,number)其中的number起到一个定义替换次数的作用,在用户没有说明的情况下,默认是全部替换。

六,Harshad 数

重点是这行代码:num_str = str(abs(num)),其中的abs是用于取绝对值的。

七,字符串是否为标题

return sentence.istitle()

检查是否是标题也就是检查每个单词的第一个字母是不是大写的,直接使用istitle方法即可。

八,不重复元素的列表

这道题目主要介绍一下思路,题目要求是求两个字符串中相同的字母的个数。思路就是先将字符串转化成字典,然后将俩个字典进行按位与的运算,最后求出长度即可。

九,嵌套元组唯一元素

给了一个二位的元组,需要我们将里面的元素输出出来(重复出现的也只输出一次),一看到去重我们就要想到集合,我们直接使用集合推导式,然后用sort进行排序。

return sorted({x for tup in nested for x in tup})

相关推荐
独好紫罗兰8 分钟前
对python的再认识-基于数据结构进行-a003-列表-排序
开发语言·数据结构·python
wuhen_n15 分钟前
JavaScript内置数据结构
开发语言·前端·javascript·数据结构
AIFarmer15 分钟前
在EV3上运行Python语言——无线编程
python·ev3
不会代码的小测试18 分钟前
UI自动化-POM封装
开发语言·python·selenium·自动化
2401_8414956420 分钟前
【LeetCode刷题】二叉树的层序遍历
数据结构·python·算法·leetcode·二叉树··队列
roman_日积跬步-终至千里24 分钟前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
lsx20240629 分钟前
C++ 基本的输入输出
开发语言
ZH154558913130 分钟前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter
B站计算机毕业设计超人35 分钟前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人36 分钟前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计