
python基础
介绍python的一些基础用法
旺旺棒棒冰
做正确的事,正确得做事
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
中文分句,处理双引号
2. 然后按照句号,问号,感叹号,省略号分句。1. 先将引号部分用特定字符替换。3. 再将特殊字符替换为原始内容。原创 2022-11-21 16:49:34 · 647 阅读 · 0 评论 -
获取python安装路径
import osprint(os.sys.path)有时候,系统装了多个python环境,不知道到当前使用的是哪个。可以通过上面的代码来找到当前使用的python在、安装路径。原创 2022-03-27 16:14:38 · 1445 阅读 · 0 评论 -
python读取txt文件出现UnicodeError
首先我们看看正常的读取数据过程:with open('test.txt','r',encoding='utf-8') as f:#很多时候由于数据量比较大,所以并不建议一次性读取,这里我们选择的是逐行一次读取数据 for i in f: pass在读取数据的过程中,有时候会因为某一行数据中有一些特殊字符而出现编码错误。'utf-8' codec can't decode byte 0xe8 in position 10一般想到的是通过异常处理直接跳过,但是想想try转载 2022-03-27 15:54:14 · 1724 阅读 · 0 评论 -
python常用正则表达式
1. 去除text中的空白符,即用空字符代替空格符,制表符,换行符等统称为空白符text = re.sub("\s","",text)原创 2022-02-14 12:41:55 · 398 阅读 · 0 评论 -
redis如何设置密码
原文链接:https://blog.csdn.net/qq_42815754/article/details/83827375redis的基本安装见菜鸟教程目录密码设置1. 需要重启redis服务的设置方式2. 不需要重启redis服务的密码设置方式密码设置这里简单介绍一下redis如何设置密码redis密码设置有两种方式,一种需要重启redis服务,一种不需要重启redis服务。1. 需要重启redis服务的设置方式即找到redis的配置文件—redis.con转载 2021-10-22 19:23:47 · 398 阅读 · 0 评论 -
AttributeError: module ‘enum‘ has no attribute ‘IntFlag‘
解决方法:pip uninstall -y enum34原创 2021-10-22 19:08:51 · 122 阅读 · 0 评论 -
leetcode求众数
哈希法class Solution: def majorityElement(self, nums: List[int]) -> int: # 时间复杂度o(n) # 空间复杂度O(n) dict_num = {} for item in nums: if item in dict_num: dict_num[item] +=1 else:..原创 2021-09-20 23:40:50 · 368 阅读 · 0 评论 -
十分钟入门pandas
翻译自https://pandas.pydata.org/docs/user_guide/10min.html使用版本 0.23.0pandas是一个快速、强大、灵活且易于使用的开源数据分析和操作工具,构建在Python编程语言之上。pandas中包含两种结构Series是一个一维标记数组,可以保存任何数据类型(整数、字符串、浮点数、Python对象等)DataFrame是一个带有不同类型列的二维标记数据结构。可以将其视为电子表格或SQL表,或Series对象的字典。相比Series更加常用。翻译 2021-09-12 15:25:09 · 538 阅读 · 0 评论 -
二叉搜索树的公共祖先,二叉树的最近公共祖先
二叉树的定义:# Definition for a binary tree node.class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None二叉树的构建:在这里插入代码片235. 二叉搜索树的最近公共祖先二叉搜索树按照中序遍历是有序的,左孩子所有结点的值都小于根结点,右孩子所有结点的值大于根结点使用递归的方法:原创 2021-09-08 12:06:59 · 693 阅读 · 0 评论 -
leetcode链表中的两数相加问题
2. 两数相加找出两个链表中较长的链表,原地修改后,作为最后的返回结果两个链表从前往后遍历,考虑进位,直到短链表结束。将长链表数值放入结果(考虑进位)。考虑是否需要额外增加一个结点来放进位class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: # 最重要的是处理进位的问题 if not l1: return l2 if not原创 2021-09-07 12:22:15 · 142 阅读 · 0 评论 -
leetcode两数之和,三数之和,四数之和问题
1. 两数之和遍历数组的同时,使用字典(哈希表)记录数对应的索引,对于每一个数nums[i],判断 target-nums[i]是否在字典中,找到一个即返回。若列表中的与元素有重复也可这样处理,因为遍历的过程中,不包含当前元素。class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) if n < 2:原创 2021-09-07 11:40:54 · 202 阅读 · 0 评论 -
leetcode哈希表解决异位词问题
哈希表散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构。它通过计算出一个键值的函数(hash function),将所需查询的数据映射到表中一个位置来让人访问,这加快了查找速度。哈希函数构造哈希函数方法直接定址法数字分析法平方取中法折叠法随机数法除留余数法哈希冲突一个好的哈希函数,应该尽可能的避免冲突冲突:k1≠k2k1≠k2,而f(k1)=f(k2)f(k1)=f(k2){\displaystyle k_{1}\neq k_{原创 2021-09-07 11:14:24 · 175 阅读 · 0 评论 -
python堆结构heapq
堆是一种二叉树结构,python中的堆是小根堆。每个父节点的值都小于或等于它的任何子节点;即对于任何一个结点kkk,都满足:a[k] <= a[2*k+1] a[k] <= a[2*k+2] 最小的元素总是根元素。heapq模块是通过优先队列算法实现的。方法功能heapq.heappush(heap, item)将 item 的值加入heap中,保持堆的性质。heapq.heappop(heap)弹出并返回heap的最小的元素,保持堆的性质。如果堆为空,翻译 2021-08-27 13:24:09 · 651 阅读 · 0 评论 -
python json的中文读取与中文写入
写入jsonimport json# 写入jsonall_res = {}write_path = "E:/test_feature.json"all_res["明天"] = "天气好"with open(write_path, "w", encoding='utf-8') as f: json.dump(all_res, f, ensure_ascii=False)文件test_feature.json内容:{"明天": "天气好"}中文的写入 json.dump需要加上e原创 2021-07-29 20:17:48 · 12955 阅读 · 1 评论 -
简单树匹配算法STM-实践篇
计算网页结构相似度代码:from __future__ import print_functionfrom __future__ import divisionfrom __future__ import absolute_importimport urllib.requestfrom bs4 import BeautifulSoupdef getNodeNum(root): if root is None: return 0 elif not hasat原创 2021-07-26 13:32:25 · 1111 阅读 · 0 评论 -
python selenium 模拟浏览器
遇到的问题selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted可能的原因:(1)点击的地方受到了遮挡需要先把遮挡去掉,例如下图此时,模拟浏览器进行点击“登录”按钮,因为“登录”按钮被遮挡,就会出现上面的错误解决方法:先选择好账户,再输入密码,最后再点登录...原创 2021-07-19 12:04:17 · 901 阅读 · 0 评论 -
使用conda管理虚拟环境
安装MinicondaMiniconda是免费的conda轻量安装包,只包含conda、Python及它们所依赖的包,以及其他一些有用的包,例如pip, zlib等。使用conda install command可从Anaconda仓库中安装720多个额外的conda包。官网安装教程https://conda.io/projects/conda/en/latest/user-guide/install/index.html...原创 2021-07-09 00:08:01 · 728 阅读 · 2 评论 -
python glob用法
转自python官方文档glob通过使用通配符.*?,找出所有匹配特定模式的路径名考虑一个包含以下内容的目录data\__ data \__ 1.gif \__ 2.txt \__ card.gif \__ .card.gif \__ sub \__ 3.txtglob() 将产生如下结果(路径的任何开头部分都将被保留):import globfiles =原创 2021-07-08 12:44:02 · 931 阅读 · 0 评论 -
python画热力图
python中可使用seaborn.heatmap画热力图,官方文档在这在分类任务中,也可用于画混淆矩阵:import numpy as npimport seaborn as snsimport pandas as pdimport matplotlib.pyplot as pltdef confusion_matrix(y_true, y_pred, labels=None): n = len(labels) labels_dict = {label: i for i,原创 2021-07-02 15:43:14 · 26650 阅读 · 2 评论 -
python按照多个key排序
# 取最值pairs = {('s', 't</w>'): 9, ('e', 's'): 9, ('o', 'w</w>'): 5, ('l', 'o'): 7, ('w', 'e'): 8, ('o', 'w'): 2}best = max(pairs, key=lambda x: (pairs[x], x))print(best)# 按照多个key排序pairs = {('s', 't</w>'): 9, ('e', 's'): 9, ('o', 'w&.原创 2021-06-18 12:17:50 · 1296 阅读 · 0 评论 -
ImportError: No Module Named [x]
有时,明明安装了相应的包,但是还会出现ImportError: No Module Named [x],可能有一下几个原因(1)没有使用正确的python环境例如,在pycharm中选错了解释器(2)包没有安装成功,可以使用pip list查看 如果图中找不到需要的包,说明没有安装成功。需要重新安装,注意安装过程中的错误提示(3)python和pip的版本不一致 一台机器上可能包含多个python版本以及对应的pip版本,上图的python版本是3.6原创 2021-06-02 23:58:04 · 298 阅读 · 0 评论 -
_tkinter.TclError: no display name and no $DISPLAY environment variable
使用tkinter画图,例如运行以下代码:import osfrom nltk import Treefrom nltk.draw.util import CanvasFramefrom nltk.draw import TreeWidgetcf = CanvasFrame()t = Tree.fromstring('(S (NP this tree) (VP (V is) (AdjP pretty)))')tc = TreeWidget(cf.canvas(), t)cf.add_w原创 2021-06-02 15:51:50 · 692 阅读 · 0 评论 -
python深拷贝和浅拷贝机制
转自Python 直接赋值、浅拷贝和深度拷贝解析区别直接赋值:其实就是对象的引用(别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy):copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。解析1、b = a: 赋值引用,a 和 b 都指向同一个对象。2、b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。3、b = copy.deepcopy(a): 深度拷贝, a转载 2021-05-26 19:07:06 · 288 阅读 · 0 评论 -
去除非ascii字符以及ascii中的控制符
def remove_ascii_control(text): """ 去除非ascii字符以及ascii中的特殊字符 """ for character in text: if ord(character) >= 127: text = text.replace(character, " ") if ord(character) <= 31: text = text.replace(原创 2021-05-10 14:41:45 · 1244 阅读 · 0 评论 -
python正则表达式之match,search,findall区别
import retext = "天安门:我爱北京天安门,因为北京天安门很漂亮"text_1 = "我爱北京天安门,因为北京天安门很漂亮"res_match = re.match("天安门", text)res_match_1 = re.match("天安门", text_1)print(res_match)print(res_match.group())print(res_match.span())# match只匹配开头字符串,并且只匹配一次,返回的数据类型是 <class.原创 2021-04-26 11:26:30 · 684 阅读 · 0 评论 -
python-按照相同的顺序打乱
import numpy as npa = [1, 2, 3, 4, 5, 6]b = [1, 2, 3, 4, 5, 6]index = np.arange(len(a))np.random.shuffle(index)print(index)a = np.array(a)[index]b = np.array(b)[index]print(a)print(b)原创 2021-04-23 18:18:46 · 772 阅读 · 0 评论 -
比较笨的中文预处理 python
def clean_str(string): #半角英文特殊字符 string = re.sub(r"[A-Za-z&\*\.;\?!,:\-\'\^\`/\(\)]", "", string) #去除中文特殊字符 string = re.sub(r"(~)", "", string) string = re.sub(r"(《)", "", string)原创 2017-12-24 20:47:43 · 423 阅读 · 0 评论 -
numpy 用法
numpy 是python的一个矩阵类型,提供了大量矩阵处理的函数。运行速度快,内部用c语言实现。包含两种基本类型:数组和矩阵 1.数组 多维数组的类型是:numpy.ndarray。使用numpy.array方法import numpy as npp=np.array([1,2,3,4])# np.array((1,2,3,4)) 等价print type(p)# <type 'n原创 2017-12-06 20:10:56 · 254 阅读 · 0 评论