前言

最近工作和研究涉及到数据挖掘和机器学习,出于归纳和总结知识的目的写下这一系列的文章,这一系列文章将会包括Python的基本数据类型和数据结构,函数和面向对象相关的知识,然后会介绍数据挖掘和机器学习经常用到的Numpy,Pandas。也希望这一系列文章能够帮助刚刚接触Python或者数据挖掘和机器学习的人。

基本数据类型

数字

Python中将带小数点的数都当作浮点数处理,对于加减乘除的基本操作与其他语言没有什么差别。

字符串

与绝大多数语言相同,Python也是通过“”来声明字符串。

  1. poet = "We are all in the gutter, but some of us are looking for stars"
  2. print(poet);
  3. 复制代码

字符串对空格敏感,不会主动去除空格,我们可以通过lstrip和strip来去除字符串左边和两端的字符串。

  1. name = " Python"
  2. name1 = " Python "
  3. print(name.lstrip())
  4. print(name1.strip())
  5. 复制代码

Python也是通过+来连接字符串

  1. name = "hello"+" Python"
  2. print(name.lstrip())
  3. 复制代码

需要注意的是Python与其他语言如Java不同的地方在于在拼接字符串时python不会主动将其他类型转化为字符串类型,需要自己手动转换,否则会报错如下

  1. age = 23
  2. message = "Happy" + age + "rd Birthday"
  3. print(message.lstrip())
  4. # 报错
  5. TypeError: can only concatenate str (not "int") to str
  6. Traceback (most recent call last):
  7. File "D:/Program Files/project/hello.py", line 3, in <module>
  8. message = "Happy" + 23 + "rd Birthday"
  9. TypeError: can only concatenate str (not "int") to str
  10. 复制代码

必须改为

  1. age = 23
  2. message = "Happy" + str(age) + "rd Birthday"
  3. print(message.lstrip())
  4. 复制代码

列表

列表基础

列表是由一系列按特定顺序排列的元素组成,可以由[]来声明一个列表。

  1. names = ["Python", 'Java', 'C++']
  2. 复制代码

Python列表访问元素和修改元素与一些语言中的数据相类似,通过下标来访问和修改元素且下标从0开始。

  1. names[0] = 'go'
  2. 复制代码

可以通过append来在列表尾添加元素

  1. names.append('C')
  2. 复制代码

通过insert来在特定位置插入元素

  1. names.insert(0, 'Ruby')
  2. 复制代码

list删除元素有很多种方法,可以使用del来删除元素。

  1. del names[0]
  2. 复制代码

也可以使用pop来删除元素

  1. names.pop(0)
  2. 复制代码

前面两种都是根据位置来删除元素,可以用remove根据值来删除元素,需要注意的是,remove只会删除一个值,如果列表中有多个相同值则需要调用多次。

  1. names.remove('Java')
  2. 复制代码

列表的排序:可以用sort使列表永久排序,可以通过传递参数reverse = True来倒着排序。

  1. nums = [1, 9, 7, 5, 4, 3, 2]
  2. nums.sort(reverse=True)
  3. 复制代码

sort会永久改变列表,如果只是想临时排序可以使用sorted。

  1. nums = [1, 9, 7, 5, 4, 3, 2]
  2. print(sorted(nums))
  3. 复制代码

可以使用reverse来使列表倒转

  1. nums = [1, 9, 7, 5, 4, 3, 2]
  2. nums.reverse()
  3. print(nums)
  4. 复制代码

可以用len来获取列表的长度

  1. len(nums)
  2. 复制代码

为了避免在访问列表时越界,Python以-1来表示最后一个元素,-2为倒数第2个,以此类推

  1. nums[-1]
  2. 复制代码

列表操作

我们可以使用for in语句来遍历列表,需要注意在Python中使用:和缩进来代替其他语言中常用的{}来表示语句块,这也是Pyhthon的一个特色。

  1. names = ["Python", 'Java', 'C++', 'go', 'Ruby']
  2. for item in names:
  3. print(item)
  4. 复制代码

我们还可以使用range函数来生成一组数字,range(1, 5)会返回1, 2, 3, 4,同时range还可以设置步长,range(1, 5, 2)会返回1, 3。

  1. for i in range(1, 5, 2):
  2. print(i)
  3. 复制代码

可以利用list加range构造一个数字列表,可以使用min,max,sum求数字列表的最小值,最大值和和。

  1. nums = list(range(1, 5))
  2. print(max(nums))
  3. print(min(nums))
  4. print(sum(nums))
  5. 复制代码

我们还可以通过列表解析来创建列表,如下,Python中**表示乘方运算。

  1. squares = [value**2 for value in range(1, 5)]
  2. 复制代码

等价于

  1. squares = []
  2. for value in range(1, 5):
  3. squares.append(value**2)
  4. 复制代码

Python可以通过切片来获取列表的一部分。

  1. names = ["Python", 'Java', 'C++', 'go', 'Ruby']
  2. print(names[1:3])
  3. # 返回['Java', 'C++']
  4. 复制代码

[1:3]有点像以前数学的区间,右边是开区间,[1:3]就是【1,3)就是1,2。

元组

元组就是一种特殊的列表,声明之后就无法更改,可以通过()声明。

  1. names=('java', 'python')
  2. 复制代码

字典

列表是有序的,通过位置来访问元素,而字典是无序,通过键值对来存储和访问元素,可以通过{}来声明字典。

  1. D = {}
  2. D = {'egg': 1, 'ham': 2}
  3. 复制代码

字典是可以嵌套的

  1. D ={'food': {'egg': 1, 'ham': 2}}
  2. 复制代码

字典可以通过keys,values和items来获取键,值和键+值。

  1. D = {'egg': 1, 'ham': 2}
  2. print(D.keys())
  3. print(D.values())
  4. print(D.items())
  5. 复制代码

通过get来根据键来获取键对应的值。

  1. D = {'egg': 1, 'ham': 2}
  2. print(D.get('egg'))
  3. 复制代码

通过键来新增或更改字典

  1. D = {'egg': 1, 'ham': 2}
  2. D['egg'] = 2
  3. print(D)
  4. 复制代码

通过del和pop来删除元素

  1. D = {'egg': 1, 'ham': 2}
  2. del D['egg']
  3. D.pop('ham')
  4. 复制代码

通过update来合并两个字典

  1. D1 = {'bread': 3}
  2. D = {'egg': 1, 'ham': 2}
  3. D.update(D1)
  4. print(D)
  5. 复制代码

通过len来获取字典长度

  1. D = {'egg': 1, 'ham': 2}
  2. print(len(D))
  3. 复制代码

最后

简单介绍了Python的数据结构,内容很简单,不过最好还是自己动手敲一遍,纸上得来终觉浅。

作者:月下西楼
链接:https://juejin.im/post/6892383755341758477
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Python基本数据类型与数据结构(数据挖掘学习)的更多相关文章

  1. Python的数据类型与数据结构

    Python的数据类型与数据结构 数据类型分为: 整数型 :数字的整数 浮点型: 数字带小数 字符串: 用 ‘’ 或者 “” 引用的任意文本 布尔型:只有 True 和 False 数据结构分为: 列 ...

  2. 闲聊之Python的数据类型 - 零基础入门学习Python005

    闲聊之Python的数据类型 让编程改变世界 Change the world by program Python的数据类型 闲聊之Python的数据类型所谓闲聊,goosip,就是屁大点事可以咱聊上 ...

  3. python组合数据类型和数据结构

    //2019.12-071.pyhton里面组合数据类型主要有三种:集合(set).序列(字符串str.列表list and 元组tuple)和映射(字典dic)2.集合类型一般使用大括号{}来进行表 ...

  4. 第二章 python中重要的数据结构(下)

    二.元组(tuple):不可变序列 跟list一样,也是一种序列,唯一不同的是,元组元素不能被修改,通常用(, ,)表示元组,也可以不加括号. #创建元组 >>> 1,2,3 (1, ...

  5. Python中的数据类型和数据结构

    一.数据类型 Python中有六个标准数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) 其中,除列表Lis ...

  6. [python学习手册-笔记]002.python核心数据类型

    python核心数据类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...

  7. 图解python | 基础数据类型

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  8. Python 之路 Day5 - 常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  9. python 基本数据类型分析

    在python中,一切都是对象!对象由类创建而来,对象所拥有的功能都来自于类.在本节中,我们了解一下python基本数据类型对象具有哪些功能,我们平常是怎么使用的. 对于python,一切事物都是对象 ...

随机推荐

  1. ASP课程实例1——简易的手机号抽奖

    本程序用到了最基本的vbscript函数. 请大家注意它们的用法并熟悉asp网页的基本结构. inputbox,mid() ,replace(),rnd(),fix(),document.write ...

  2. MeteoInfoLab脚本示例:风场矢量图

    读取风场U/V变量数据,可以从U/V计算出风速:speed = sqrt(u*u+v*v).quiverm函数用来绘制风场矢量图,参数中包括U/V变量,如果要绘制彩色风场还需要第三个变量,这里是风速s ...

  3. day52 Pyhton 前端03

    内容回顾 块级标签: div p h 列表:ol;ul;dl 表格:table 行内标签: span a i/em b/strong u/del 行内块: input textarea img 其他: ...

  4. BUUCTF-misc九连环 详解

    这个没什么玄学,我们解压出来一张照片,放到hxd中搂一眼,最后结尾的那几行中看到了zip压缩包的结尾标识符,难道这里面还有压缩包,于是我们就formostlrb 果然有图片有压缩包 我们打开压缩包看到 ...

  5. pytest+allure生成接口自动化测试报告

    准备环境 1.安装pytest pip install pytest -i http://pypi.douban.com/simple pytest-ordering pytest.main([ &q ...

  6. php安装kafka扩展

    https://blog.csdn.net/zsl10/article/details/78743335 https://blog.csdn.net/lw545034502/article/detai ...

  7. spring boot:用dynamic-datasource-spring-boot-starter配置多数据源访问seata(seata 1.3.0 / spring boot 2.3.3)

    一,dynamic-datasource-spring-boot-starter的优势? 1,dynamic-datasource-spring-boot-starter 是一个基于springboo ...

  8. lumen 添加配置

    app同级目录新建config目录 添加配置文件 bootstrap/app.php里面加载 $app->configure('options');使用 $router->get('/', ...

  9. JavaScript实现异步的4中方法

    一:背景简介 Javascript语言的执行环境是"单线程"(single thread). 所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须 ...

  10. Spring Boot打包部署

    date: 2018-11-19 15:30:11 updated: 2018-11-21 08:28:37 Spring Boot打包部署 第一种方式 打包成jar包部署在服务器上 1.1 添加插件 ...