python基础篇
际遇98
这个作者很懒,什么都没留下…
展开
-
二叉树遍历bfs和dfs
广度优先# bfsclass node(object): def __init__(self,key): self.key = key self.left = None self.right = Noneroot = node(5)root.left = node(2)root.right = node(4)root.left....原创 2019-08-12 09:19:52 · 274 阅读 · 0 评论 -
比较两个字符串是否有相同的字母且相同字母个数相等
问题若给两组字符串如:s1 = ‘Public Relations’s2 = ‘Crap Built on Lies’如果忽略大小写与空格,s1可以通过打乱顺序得到s2,则返回True,否则返回Falses1 = 'Public Relations's2 = 'Crap Built on Lies'import re#变为小写字母s1 = s1.lower()s2 = s2....原创 2019-08-08 18:27:30 · 3213 阅读 · 2 评论 -
输入一个整数数组,和一个目标值k,输出整数数组中所有和为k的整数对
问题:输入一个整数数组,和一个目标值k,输出整数数组中所有和为k的整数对如: pair_sum([1,3,2,2], 4)输出:(1,3) (2,2)def pair_sum(array,k): seen = set() output = set() if len(array) < 2: return "false" else...原创 2019-08-08 11:20:28 · 2371 阅读 · 1 评论 -
简单的hashtable代码实现
class HashTable(object): def __init__(self,size): self.size = size self.slots = [None] * self.size self.data = [None] * self.size def put(self,key,data): ...原创 2019-08-08 10:27:37 · 162 阅读 · 0 评论 -
函数返回值----返回一个函数
#函数返回值 返回一个函数def func_with_return(x): if x == 2: def inner_func(y): return y * y if x == 3: def inner_func(y): return y * y * y return inner_func ...原创 2019-07-28 10:16:04 · 368 阅读 · 0 评论 -
冒泡排序
从小到大排列#冒泡排序 从小到大排列nums = [3,1,25,10,15,6,8]for i in range(len(nums) - 1): for j in range(len(nums) - i - 1): if nums[j] > nums[j+1]: nums[j], nums[j+1] = nums[j+1], nums...原创 2019-07-27 22:15:35 · 92 阅读 · 0 评论 -
is 与 == 的区别
is判断两个变量的地址,两个变量地址一样返回True;== 判断两个变量的值,两个变量值相同则返回True'''身份运算符isis not'''i = 1j = 1print(i == j)print(i is j)print(id(i)) # 取地址 id()print(id(j))i = 2print(i)print(j)print(id(i))print(...原创 2019-07-27 20:38:31 · 162 阅读 · 0 评论 -
如何打印字母的ASCII的值
i = "a"j = "B"#ord()print(ord(i)) #打印出a的ASCII值 97print(ord(j)) #打印出B的ASCII值 66#chr()print(chr(97)) #打印出ASCII值为97对应的字母 a原创 2019-07-27 20:26:41 · 1525 阅读 · 0 评论 -
Python 中结构化数组的构建与处理
#structured dataname = ['a','b','c','d']age = [12,23,34,45]weight = [34,45,56,67]import numpy as npx = np.zeros(4, dtype=int) # 使用结构化数组的复合数据类型data = np.zeros(4, dtype={'names':('name', 'age'...原创 2019-08-05 16:23:53 · 354 阅读 · 0 评论 -
np.concatenate()、np.vstack()、np.hstack()拼接两个数组
np.concatenate()concatenate()函数根据指定的维度,对一个元组、列表中的list或者ndarray进行连接,函数原型:numpy.concatenate((a1, a2, …), axis=0)import numpy as npx = np.array([[1,2],[3,4]])y = np.array([[5,6]])z_concatenate_0 = ...原创 2019-08-05 15:14:45 · 867 阅读 · 0 评论 -
二分查找、顺序查找
#二分查找arr = [1,2,3,4,5,6,7,8,9,10]def binary_search(arr,ele): left = 0 right = len(arr) - 1 while True: mid = (left + right) // 2 if left > right: ...原创 2019-08-08 19:51:08 · 128 阅读 · 0 评论 -
pandas的基础知识
文章目录pd.date_rangepd.factorize 标称型数据映射称为一组数字head() 查询数据的前5行tail() 查询数据的末尾5行查询指定的行查询指定的列查询指定的行和列数据筛选Series中计算均值、最大最小值等的方法1 数据结构的简介:DataFrame 和 Seriespandas中有两类非常重要的数据结构,就是序列Series和数据框DataFrame.Seri...原创 2019-08-06 16:10:00 · 394 阅读 · 0 评论 -
动态规划demo
问题:给出任意n,k, 将整数n分成k份,且每种拆分方案不能为空,任意拆分方案不考虑顺序。例如:1,1,5和1,5,1以及5,1,1同为n=7的一种拆分问对于所给n和k,总共有多少种不同的拆分方法d[7,3]"状态转移方程"p=3d[4,2] {1,3} {2,2}p=4d[3,2] {1,2}p=5d[2,2] {1,1}2+1+1=4#方法一:递推方法im...原创 2019-08-11 17:10:34 · 171 阅读 · 0 评论 -
深度回溯demo
问题:假如公司名为0 1 2 3 4 5 6 7 那么从中取出3个公司的组合有哪些?请一一打印出来#深度回溯import numpy as npimport copyn = 8m = 3solutions = []solution = np.zeros(m)ans = 0def combination(s, last): global ans if s =...原创 2019-08-09 19:07:42 · 166 阅读 · 0 评论 -
“图”的快速生成可视化
创建graph#graphfrom collections import OrderedDictclass Node: def __init__(self,num): self.num = num self.adjacent = OrderedDict() class Graph: def __init__(self):...原创 2019-08-07 16:08:08 · 170 阅读 · 0 评论 -
一个简单的贪心算法案例
问题:给一组整数 输出其中最大的连续排列整数之和例如:1 2 -1 3 4 10 10 -10 -1则 1 2 -1 3 4 10 10 为和最大的连续排列的整数def large_cont_sum(arr): if len(arr) == 0: return 0 count = [arr[0]] list1 = [] max_su...原创 2019-08-09 14:16:29 · 273 阅读 · 0 评论 -
栈、队列、链表、二叉树
# stack 栈 LIFO 后进先出(先进后出First In Last Out)class Stack(object): def __init__(self): self.items = [] #isEmpty def isEmpty(self): return self.items == [] #push def a...原创 2019-08-07 10:37:09 · 145 阅读 · 0 评论 -
递归
问题一:输入正整数n,例如n=4 返回 4+3+2+1 也就是10def rec_sum(n): if n == 1: return 1 else: return n + rec_sum(n-1)rec_sum(6)21问题二:输入正整数n,例如4321 返回4+3+2+1 也就是10def sum_func(n): if...原创 2019-08-09 09:31:56 · 72 阅读 · 0 评论 -
numpy.bincount()计算索引出现次数
它大致说bin的数量比x中的最大值大1,每个bin给出了它的索引值在x中出现的次数。import numpy as np#bincount()计算索引出现次数x=np.array([1,2,3,3,0,1,4,0,6])'''我们要统计x中从0开始到最大值出现的次数,所以索引值的范围应该是[0,max]闭区间,因此bin的数量为 max+1。x中的最大数字是6,因此bin的数量为7...原创 2019-08-06 22:43:08 · 918 阅读 · 0 评论 -
Numpy基础知识
import numpy as npaxis = i 就在 i 这个维度上进行操作ndim 维度shape 形状size 元素个数dtype 数据类型#创建连续型数据a=np.linspace(1,10,5) #首1,尾10,分成5个数据print(a)[ 1. 3.25 5.5 7.75 10. ]基本操作和运算A = [[1,2,-5], ...原创 2019-08-06 22:01:21 · 182 阅读 · 0 评论 -
文件操作
读写文件是最常见的IO操作,那么使用python语言如何操作呢?见下。读写文件的过程请求操作系统打开一个文件对象(通常称为文件描述符),然后通过系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。#读文件---使用python内置的open()函数f=open('./test.txt','r') #'r'表示读f<_io.TextIOWrap...原创 2019-08-06 16:26:30 · 81 阅读 · 0 评论 -
利用sklearn搭建简单的训练模型
#导入样本数据from sklearn import datasetswine = datasets.load_wine()X = wine.datay = wine.targetimport numpy as npprint(np.shape(X), np.shape(y))#把数据分成训练数据和测试数据from sklearn.model_selection import ...原创 2019-07-23 14:30:56 · 1757 阅读 · 0 评论 -
range() 与 np.arange()
np.arange()numpy.arange([start, ]stop, [step, ]dtype=None)np.nrange() 返回的是numpy.adarray() 而不是列表,以第一个参数为起点,第三个参数为步长,截止到第二个参数之前的不包括第二个参数的数据序列。支持步长为小数。Python3 range() 函数Python3 range() 函数返回的是一个可迭代对...原创 2019-08-05 09:47:24 · 525 阅读 · 0 评论 -
python进制转换函数
文章目录bin()oct()hex()其他进制转换成十进制bin()#十进制转换二进制i = 16j = bin(i)print(j)0b100000b:表示它是一个二进制数字,10000:十进制数16转换成二进制的值oct()#十进制转换八进制i = 16j = oct(i)print(j)0o200o:表示它是一个八进制数字,20:十进制数16转换成八进制的值...原创 2019-07-25 21:10:45 · 11393 阅读 · 0 评论 -
python中除法("/")、取模("%")、取整除("//")、幂("**")运算
文章目录除法("/") 运算取模("%")运算取整除("//")运算幂运算除法("/") 运算#除法运算i = 20j = 2z = i / jprint("z is {}".format(z))print(type(z))z is 10.0<class ‘float’>尽管 i,j 都是int类型,但是经过除法运算后,结果z变为float类型取模("%")运算...原创 2019-07-25 10:58:41 · 3658 阅读 · 0 评论 -
正则表达式验证手机号、邮箱
#手机号码验证import redef checkCellphone(cellphone): reg = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|18[0,5-9])\d{8}$" result = re.findall(reg, cellphone) if result: print("匹配成功") ...原创 2019-07-29 13:24:02 · 241 阅读 · 0 评论 -
正则表达式
元字符:(都是小写字母). 匹配除换行符以外的任意字符\w 匹配字母或数字或下划线或汉字\s 匹配任意的空白符\d 匹配数字\b 匹配单词的开始或结束^ 匹配字符串的开始$ 匹配字符串的结束import re #导入包reg_string = "hellopythonhello@jingyang.com正则表达式" #元字符串reg1 = "^python" #元字符...原创 2019-07-29 12:27:45 · 220 阅读 · 0 评论 -
np.array_split()与np.split()的区别
本文转自 https://blog.csdn.net/m0_37393514/article/details/79537639np.split():大小要么按照数字来划分(int),要么是一个list来划分。但是如果你仅是输入一个int类型的数字的话,你的数组必须是均等的分割,否则就会报错,不像array_split()是可以进行不均等的划分的!x = np.arange(9.0)np....转载 2019-07-24 12:08:49 · 531 阅读 · 0 评论 -
append()和extend()的区别
x = [1,2,3,4]y = [5,6,7,8] print("x:\n{}\ny:\n{}".format(x,y))x.append(y)print("x.append(y) is {}".format(x))x = [1,2,3,4]x.extend(y)print("x.extend(y) is {}".format(x))append() 方法将列表y作为一个...原创 2019-07-24 11:58:36 · 1831 阅读 · 0 评论 -
递归查找
#递归查找def find_number_location(input_list, left, right, number): mid = (left + right) // 2 if left > right: #递归结束条件 return -1 elif number > input_lis...原创 2019-07-29 08:48:26 · 287 阅读 · 0 评论 -
jupyter notebook 的基础操作
文章目录1. 获取使用方法提示2.jupyter notebook 增删cell3.字符串1. 获取使用方法提示import mathhelp(math)import numpy as np?np知道函数名,但不知道该怎么使用,可以在函数名后边的括号内使用 “shift + Tab” 获取使用提示2.jupyter notebook 增删cell1. 编辑模式下,按esc键...原创 2019-05-28 21:33:02 · 167 阅读 · 0 评论 -
ubuntu使用国内源下载命令
python3 -m pip install --upgrade <软件包名字> -i https://pypi.tuna.tsinghua.edu.cn/simple原创 2019-05-06 23:38:35 · 1730 阅读 · 0 评论 -
python中按位取反~
i= 11j = ~iprint(bin(i))print(j)print(bin(j))0b1011-12-0b1100i= 45j = ~iprint(bin(i))print(j)print(bin(j))0b101101-46-0b101110python中的按位取反可以直接计算,比如,11按位取反的计算过程是 -11 - 1 = -12;45按位取反的...原创 2019-07-25 21:42:34 · 942 阅读 · 0 评论 -
Python assert 断言函数
assert 断言的执行逻辑是:if 表达式的值为 True: 程序继续运行;else: # 表示式的值为 False 程序引发 AssertionError 错误assert(b.shape == (5,1)) #b的形状为(5...原创 2019-08-05 09:22:07 · 167 阅读 · 0 评论 -
= 、copy()与deepcopy()的区别
= 赋值# = 赋值x = 5y = 8z = x + yprint("x未修改之前,z = %d" % z)x = 6print("x修改之后,z = %d" % z)x未修改之前,z = 13x修改之后,z = 13import numpy as nplist1 = np.arange(1,10).reshape((3,3))print("list1:\n",list...原创 2019-08-05 10:50:56 · 160 阅读 · 0 评论 -
numpy的ones()、zeros()、eye()、ones_like()、zeros_like()、empty()
numpy.ones()numpy.ones(shape, dtype=None, order=‘C’)ones函数可以创建任意维度和元素个数的数组,其元素值均为1numpy.ones_like()numpy.ones_like(a, dtype=None, order=‘K’, subok=True, shape=None)返回一个用1填充的跟输入数组 形状和类型 一致的数组。n...转载 2019-08-04 22:05:52 · 1190 阅读 · 0 评论 -
生成随机数np.random.rand()、随机选取内容numpy.random.choice()
np.random.randint()numpy.random.randint(low, high=None, size=None, dtype=‘l’)函数的作用是,返回一个随机整型数,范围从低(包括)到高(不包括),即[low, high)。如果没有写参数high的值,则返回[0,low)的值。参数如下:low: int 生成的数值最低要大于等于low。(hign = None时,生成...原创 2019-08-04 21:42:24 · 1992 阅读 · 0 评论 -
矩阵运算
对于 array 做矩阵乘法可用 @对于 matrix 类型 矩阵乘可用 * ,矩阵点乘可用 np.multiply(),求逆 mat.I矩阵除法 np.linalg.solve(matA, matB) Ax = B 满秩情况下np.mat( ) :将数组---->转变为矩阵import numpy as npa = np.random.rand(4,4) #构造了一个 4 ...原创 2019-08-04 20:18:18 · 106 阅读 · 0 评论 -
python中的map()和filter()函数
map() 函数:1.描述map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。2.语法map() 函数语法:map(function, iterable, …)3.参数function – 函数iterable – 一个或多个序列4.返回值Pyth...原创 2019-08-04 19:42:16 · 327 阅读 · 0 评论 -
python中的列表、元组、集合、字典
文章目录参考:列表、元组、字典、集合Python列表、元组、集合、字典的区别和相互转换列表的一般用法:list1 = ["python", 1, 6, [2, "book"], "code"] #list内元素的数据类型可以不同,也可以是另外一个listprint (list1)#使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:print (lis...原创 2019-07-26 12:00:01 · 217 阅读 · 0 评论