python每日小练
刘阿怪
信为欲依,欲为勤依。
展开
-
pyhton每日小练0002
如何序列化输出元素包含字符串元组的字符串元组举个例子zoo1 = ('monkey', 'elephant')zoo2 = ('python', zoo1)将zoo2输出为python, monkey, elephant解决方案容易想到使用join()函数,但join()函数要求元素必须都是字符串类型,否则会抛出TypeError错误zoo...原创 2019-04-16 22:06:43 · 131 阅读 · 0 评论 -
python 每日小练0016
问题你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。解决方案对于简单的文本替换,我们可以使用[lr]strip和replacestrip()方法能用于删除开始或结尾的字符。lstrip()和rstrip()分别从左和从右执行删除操作。 默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符集合。Python中有三个去除头尾字符、空白符的函数,它们...原创 2019-04-30 09:30:23 · 114 阅读 · 0 评论 -
python 每日小练0021
开始转变了,刷leetcode算法了,python的知识先过一遍书呀leetcode 搜索插入顺序:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示...原创 2019-05-19 21:06:17 · 98 阅读 · 0 评论 -
python每日小练0017
问题将一些长字符串,以指定的列宽将它们重新格式化。解决方案使用textwrap模块的fill或wrap函数import textwraps ="Look into my eyes, look into my eyes, the eyes, the eyes, \the eyes, not around the eyes, don't look around the e...原创 2019-05-14 19:28:17 · 140 阅读 · 0 评论 -
python每日小练0022
leetcode报数:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11 被读作"two 1s"("两个一"), 即21。21 被读作"one 2", "one 1"...原创 2019-05-20 22:31:00 · 137 阅读 · 0 评论 -
python每日小练0018
问题需要对浮点数执行精确的计算操作,并且不希望有任何小误差的出现。Python的float类型是存在误差的解决方案使用decimal模块,但要注意参数需要是字符串然后其他操作(加法、比较等等)和内置的float类型一样即可这个时候有一个问题是,以后的小数点精度都是3了,会影响到其他不想保存3位精度的计算。总结:实际上decimal模块还提供了一...原创 2019-05-15 21:59:41 · 116 阅读 · 0 评论 -
python每日小练0019
问题Python中如何将int在十进制和二、八、十六进制之间互相转换解决方案十进制向二、八、十六进制转换分别使用bin、oct、hex这样转换会有一个前缀0b、0o、0x,如果不想要前缀只想要数值的话,可以使用format二、八、十六进制向十进制转换直接使用int()即可,因为int()的原型是int(x,base=10),所以我们只需要指定...原创 2019-05-16 13:48:07 · 109 阅读 · 0 评论 -
pyhton 每日小练0020
问题你需要执行简单的日期操作,计算两个日期间隔多少天、某个日期后的多少天是几月几日、转换时间字符串的格式等解决方案使用datetime库中的datetime和timedelta类其中datetime类代表一个日期 + 时间,例如2018年4月16日11点00分00秒;timedelta类代表一个日期间隔对于datetime实例,可以直接进行-数学运算得到一个ti...原创 2019-05-17 22:02:33 · 115 阅读 · 0 评论 -
python每日小练0023
可爱的我又回来啦!!!!忙完软考了,踏踏实实学习了那么今天的题目是:来自leetcode二叉树中第二小的节点给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为2或0。如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值。给出这样的一个二叉树,你需要输出所有节点中的第二小的值。如果第二小的值不存在的话,输出 -1 。示例 1:输入:...原创 2019-05-28 21:29:48 · 142 阅读 · 0 评论 -
python 每日小练0025
leetcode合并二叉树:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。示例1:输入: Tree 1 Tree 2 ...原创 2019-06-01 20:47:12 · 141 阅读 · 0 评论 -
python每日小练0024
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解...原创 2019-05-29 19:23:02 · 111 阅读 · 0 评论 -
python每日小练0026
leetcode 左叶子之和计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24解题思路:用递归# Definition for a binary tree node.# class TreeNode:# def __i...原创 2019-06-02 17:23:07 · 103 阅读 · 0 评论 -
python每日一练0006
问题在某个集合中找到最大或最小的N个元素解决方案使用heapq模块 http://www.cnblogs.com/bakari/p/4807847.htmlheapq.nlargest(n, iterable, key=None)heapq.nsmallest(n, iterable, key=None)例如:>>> import heapq...原创 2019-04-20 13:50:05 · 127 阅读 · 0 评论 -
leetcode 刷题总结(1)
这两天在leetcode上刷到两道解题方法很独到的算法题,特此做一个总结:1.给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "(]"...原创 2019-04-24 18:06:14 · 159 阅读 · 0 评论 -
python每日小练0010
问题你有一个字典或者实例的序列,然后你想根据某个特定的字段来分组迭代访问。解决方案:使用itertools.groupby()函数实现 https://www.cnblogs.com/dreamer-fish/p/5522687.html假设有下面的字典列表:from itertools import groupbyfrom operator impo...原创 2019-04-24 17:42:24 · 128 阅读 · 0 评论 -
python每日小练0007
问题:怎样实现一个键对应多个值的字典(也叫multidict)?例如:d = { 'a' : [1, 2, 3], 'b' : [4, 5]}e = { 'a' : {1, 2, 3}, 'b' : {4, 5}}解决方法:使用collections模块中的defaultdict类defaultdict的特点是,当key不存在时,会...原创 2019-04-21 19:28:06 · 126 阅读 · 0 评论 -
python 每日小练0011
问题你有一段通过下标访问列表或者元组中元素的代码,但是这样有时候会使得你的代码难以阅读, 于是你想通过名称来访问元素。解决方案好吧又又是这个collections库......使用collections.namedtuple函数,例如我们经常使用一个tuple表示一个坐标点的时候总结collections.namedtuple函数返回的是tuple类型的一个...原创 2019-04-25 21:03:09 · 121 阅读 · 0 评论 -
python每日小练 0003
https://blog.csdn.net/xiaoqu001/article/details/78823498python中*运算符参照上面这个链接问题基于每日小练0001考虑,当遇到可迭代对象中的数量不确定时,这时候我们如何拿到自己想要的元素,比如第一个或最后一个i解决方案使用python中的*运算符比如我们需要找到第一个元组的第一个和最后一个元素*也可以放在第...原创 2019-04-17 13:26:59 · 76 阅读 · 0 评论 -
python每日小练0012
问题如何获取本机内网或外网IP?解决方案获取内网IP:def get_host_ip(): with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s: s.connect(('8.8.8.8', 80)) return s.getsockname()[0]获取外网IP:...原创 2019-04-26 09:41:33 · 393 阅读 · 0 评论 -
python每日小练0008
问题怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)?解决方案直接对keys()或者items()使用集合操作,比如-(差)、|(并)、&(交)考虑下面两个字典:也可以使用这一特性来对字典过滤,例如去掉集合A中key为x和y两个元素但values()不支持这样的集合操作,因为values()返回的结果中,可能会有重复元素,也就不能当作一个集合来看了...原创 2019-04-22 11:05:30 · 124 阅读 · 0 评论 -
python每日小练0001
希望自己以后每天刷一道python练习题!!!今天我在这里立个flag,看看我能坚持多久!!(此题目来源微信公众号---python每日一练)问题:我们有一个包含N个元素的元组或序列,现在想把它分解为N个单独的变量。例如我们有一个序列[1, 2, 3],想把1, 2, 3分别赋值给a, b, c三个变量。解决方案只需要简单的赋值就可以了,唯一的要求是变量的数量和序列的数量必须要...原创 2019-04-15 13:34:12 · 131 阅读 · 0 评论 -
python每日小练0004
问题:如何保存迭代对象的最后N个元素例如保存列表['a', 'b', 'c', 'd']的最后2个元素或者保存某个迭代器对象的最后5个元素解决方案:对于列表,元组这样的数据结构,可以用切片来实现,比如要取列表的最后的五个元素可以使用[-5:]来实现,但有时我们操作的可迭代的对象不能使用切片我们就要采用collections库里的deque来是实现关于deque https:...原创 2019-04-18 13:44:30 · 139 阅读 · 0 评论 -
python每日小练0009
问题怎样找出一个序列中出现次数最多的元素?解决好吧,又是collections库...附一篇廖雪峰老师总结的python中collections库的说明https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001411031239400f7181f65f33a4623bc...原创 2019-04-23 20:52:24 · 88 阅读 · 0 评论 -
python每日小练 0014
昨天有事耽搁了,不过我没忘记刷题,只是没有整理到博客上问题你想使用Unix Shell中常用的通配符(比如*.py,Dat[0-9]*.csv等)去匹配文本字符串解决方案使用fnmatch模块的fnmatch或fnmatchcase函数 关于fnmatch https://blog.csdn.net/kellyseeme/article/details/5128...原创 2019-04-29 09:31:07 · 168 阅读 · 0 评论 -
python每日小练0005
问题如何对一个元素是列表的列表进行排序,排序规则是:首先按长度排序,其次按列表的字典序进行排序一个例子:list1 = [[2, 3, 1, 5], [3, 1, 5], [4, 0, 1, 5]]排序后为list1 = [[3, 1, 5], [2, 3, 1, 5], [4, 0, 1, 5]]另一个例子:list2 = [[3, 5, 2], [6, 8, 4], ...原创 2019-04-19 22:12:26 · 111 阅读 · 0 评论 -
python每日小练0015
问题如何比较两个字面一样,但字节不一样的字符串例如:这里的a和b字符串是一样的,但仔细观察可以发现,其中a字符串是\u7099,b字符串对应的是\uf9fb所以虽然a和b是字面上一模一样的字符串,但a实际上和b是不等的解决方案使用unicodedata库的normalize将两个字符串标准化后,再进行比较就可以了...原创 2019-04-29 12:38:47 · 116 阅读 · 0 评论 -
python 每日小练0027
leetcode平方数之和给定一个非负整数c,你要判断是否存在两个整数 a 和 b,使得a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例2:输入: 3输出: False解题思路:双指针import mathdef judgeSquareSum(self, c: int) : ...原创 2019-06-03 18:42:39 · 454 阅读 · 0 评论