第一章 python中重要的数据结构(上)

最近,由于工作需要,使用python开发公司的运维自动化平台,所以找本书来并结合官方手册,开始python的学习之旅。

一、列表

【含义】:列表用中括号表示,通过逗号进行分隔一组数据(可以为不同的数据类型),如以下的声明:

1 >>> language = [‘chinese‘,‘english‘,‘japanese‘]
2 >>> contries = [‘China‘,‘Amercia‘,‘England‘,‘Japan‘]
3
4 >>> edward = [‘Edward Gumby‘,42]  #不同的数据类型
5 >>> john = [‘John Smith‘,50]
6 >>> database = [edward,john] #列表可以嵌套

【操作】:访问、插入、删除、求最大值最小值及长度等

1、访问:可以通过索引或分片进行列表的遍历访问,索引可以访问某个位置的值,分片可以灵活的访问一定范围的值,如下所示:

 1  >>> language = [‘chinese‘,‘english‘,‘japanese‘]
 2  # 索引访问
 3  >>> language[0]
 4  ‘chinese‘
 5
 6  # 分片访问
 7  # 第一个索引元素包括在分片中,第二个索引不包括在分片中
 8  # 可以设置分片的步长
 9  >>> language[::]
10  [‘chinese‘, ‘english‘, ‘japanese‘]
11  >>> language[0:3]
12  [‘chinese‘, ‘english‘, ‘japanese‘]
13  >>> language[0:2]
14  [‘chinese‘, ‘english‘]
15  >>> language[1:2]
16  [‘english‘]
17  # 设置步长为2
18  >>> num = [1,2,3,4,5,6,7,8,9]
19  >>> num[0:9:2]
20  [1, 3, 5, 7, 9]

21  >>> num = [1, 2, 3]22  >>> max(num)23  324  >>> min(num)25  126  >>> len(num)27  3

2、修改、插入和删除操作,由此看来列表是可以进行修改的。

 1 #修改列表某个元素:索引赋值
 2 >>> num = [1,2,3]
 3 >>> num[0]=5  #必须为存在的位置索引赋值,否则报错
 4 >>> num
 5 [5, 2, 3]
 6
 7 #修改列表某段范围的值:分片赋值
 8 >>> num[2:]=[6,7,9] #分片赋值元素个数可以不等长
 9 >>> num
10 [5, 2, 6, 7, 9]
11
12 #删除某个元素
13 >>> del num[4]
14 >>> num
15 [5, 2, 6, 7]

【方法】对于列表,python内置了诸多方法供操作,主要常用的有以下几个:

 1 #append方法:用于在列表最后添加元素,该方法直接修改原列表并返回修改完后的新列表
 2 >>> str = [‘a‘,‘b‘,‘c‘,‘d‘]
 3 >>> str.append(‘e‘)
 4 >>> str
 5 [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘]
 6
 7 #count方法:统计某个元素在列表中出现的次数
 8 >>> str = [‘a‘,‘b‘,‘c‘,‘d‘]
 9 >>> str.count(‘a‘)
10 1
11
12 #extend方法:list.extend(L),L指的是列表对象
13 #用另一个列表扩展一个列表,相当于两个列表连接,
14 #但是又不同于连接操作,因为extend方法直接修改原列表并返回,
15 #连接操作不影响原有的列表值
16 >>> str1 = [‘hello,‘]
17 >>> str2 = [‘world‘]
18 >>> str1.extend(str2)
19 >>> str1
20 [‘hello,‘, ‘world‘]
21
22 >>> str3 = [‘a‘]
23 >>> str4 = [‘5‘]
24 >>> str3 = str3+str4 #效率没有extend高
25 >>> str3
26 [‘a‘, ‘5‘]
27
28 #index方法:返回匹配项的第一个索引位置
29 >>> knight = [‘we‘,‘you‘,‘we‘,‘me‘,‘he‘]
30 >>> knight.index(‘we‘)
31 0
32
33 #insert方法:list.insert(i, x)插入x到该i位置
34 >>> knight.insert(1,‘she‘)
35 >>> knight
36 [‘we‘, ‘she‘, ‘you‘, ‘we‘, ‘me‘, ‘he‘]
37
38 #remove方法:list.remove(x)
39 #删除列表中为X的第一个出现元素
40 >>> knight = [‘we‘, ‘she‘, ‘you‘, ‘we‘, ‘me‘, ‘he‘]
41 >>> knight.remove(‘we‘)
42 >>> knight
43 [‘she‘, ‘you‘, ‘we‘, ‘me‘, ‘he‘]
44
45 #reverse方法:将元素倒序存储
46 >>> str = [‘a‘, ‘b‘]
47 >>> str.reverse()
48 >>> str
49 [‘b‘, ‘a‘]
50
51 #sort方法:list.sort(key=None, reverse=False)
52 #直接改变原列表顺序,而不是改变副本,对于这种需求如
53 #仅仅对副本进行排序,不改变原列表不能直接用sort
54 >>> num = [1,3,2,4]
55 >>> num.sort()
56 >>> num
57 [1, 2, 3, 4]
58
59 #pop方法:list.pop([i])
60 #删除指定索引位置的元素值,并返回该值
61 >>> num = [1, 2, 3, 4]
62 >>> num.pop(3)
63 4

【常用举例】:模拟实现堆栈操作和队列操作

堆栈:后进先出

 1 >>> stack = [3, 4, 5]
 2 >>> stack.append(6)
 3 >>> stack.append(7)
 4 >>> stack
 5 [3, 4, 5, 6, 7]
 6 >>> stack.pop()
 7 7
 8 >>> stack
 9 [3, 4, 5, 6]
10 >>> stack.pop()
11 6
12 >>> stack.pop()
13 5
14 >>> stack
15 [3, 4]

队列:先进先出

 1 >>> from collections import deque
 2 >>> queue = deque(["Eric", "John", "Michael"])
 3 >>> queue.append("Terry")           # Terry arrives
 4 >>> queue.append("Graham")          # Graham arrives
 5 >>> queue.popleft()                 # The first to arrive now leaves
 6 ‘Eric‘
 7 >>> queue.popleft()                 # The second to arrive now leaves
 8 ‘John‘
 9 >>> queue                           # Remaining queue in order of arrival
10 deque([‘Michael‘, ‘Terry‘, ‘Graham‘])
时间: 2024-10-21 19:35:33

第一章 python中重要的数据结构(上)的相关文章

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

二.元组(tuple):不可变序列 跟list一样,也是一种序列,唯一不同的是,元组元素不能被修改,通常用(, ,)表示元组,也可以不加括号. 1 #创建元组 2 >>> 1,2,3 3 (1, 2, 3) 4 >>> t = (1,2,3) 5 >>> t 6 (1, 2, 3) 7 #创建空元组 8 >>> t1 = () 9 >>> t1 10 () 11 #创建只有一个元素的元组,这里注意必须带上逗号 12

萌新向Python数据分析及数据挖掘 第一章 Python基础 (上)未排版

因word和博客编辑器格式不能完全对接,正在重新排版,2019年1月1日发出第一章完整版 本文将参考<Python编程 从入门到实践>的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读. 好了!我们开始第一章的学习. 第一章 Python基础 python安装以及环境搭建 python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述. IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不

Python学习(一):入门篇:python中的一些数据结构

Python里的一些基本知识点总结 Last Edit 2014/5/2 这里记录的是Python2.7版本的语法特征,部分与Python3.0是不一样的. 一,关于开发环境 在windows下可以直接在官网下载相关的版本,然后默认安装.使用直带的IDLE编辑器. IDLE中两个有用的快捷键: ALT+P:重复历史命令(从最近到最老) ALT+N:   重复历史命令(从最老到最近) IDLE中没有清屏功能. 在cmd中进行: 1,首先要在环境变量的path中添加相关的路径: C:\Python2

Python中的高级数据结构(转)

add by zhj: Python中的高级数据结构 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据 结构,分别是List.Tuple.Dictionary以及Set.大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供 选择,例如Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint.本文将介绍这些数据结构的用法,看 看它

Python中的高级数据结构详解

这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考下 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据结构,分别是List.Tuple.Dictionary以及Set.大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供选择

萌新向Python数据分析及数据挖掘 第一章 Python基础 第一节 python安装以及环境搭建 第二节 变量和简单的数据类型

本文将参考<Python编程 从入门到实践>的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读. 好了!我们开始第一章的学习. 第一章 Python基础 第一节 Python安装以及环境搭建 Python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述. IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不错的选择. Anaconda详细安装使用教程 https://blog.csdn.

萌新向Python数据分析及数据挖掘 第一章 Python基础 第八节 函数

第一章 Python基础 第八节 函数 定义函数 函数 其实就可以理解为外挂,把一些常用的.重复率比较多你又不想重复写的东西写进函数,加上开关实现简化操作 举个简单的例子 1 def greet_user(username): 2 #定义一个叫做"迎接用户"的外挂,让他能直接打印一个问候语,括号里面是函数需要输入的东西,也就是个性化的东西 3 """先是简单的问候语""" 4 print("Hello! "

萌新向Python数据分析及数据挖掘 第一章 Python基础 第十节 文件和异常

第一章 Python基础 第十节 文件和异常 从文件中读取数据 读取文件.文件路径   1 filename = 'pi_digits.txt' #文件名取个代号 2 #读取整个文件 3 with open(filename) as file_object: 4 contents = file_object.read()# 给内容取个代号 5 print(contents.rstrip()) 6 #逐行读取 7 with open(filename) as file_object: 8 for

[转载]无我的智慧 第一章 镜中修行

标签: 转载   原文地址:无我的智慧         第一章 镜中修行作者:心既是莲师 第一章 镜中修行(1) 作者:吉噶·康楚仁波切       出版社:陕西师范大学出版社 超越自我重要感进而看到真正的自己需要很大的勇气,但这就是我们的道路.所有佛法的重点,都是要减低自我重要感,如此实相才有机会显现:而这个过程必须由自我省思开始.     当我们照镜子时,最不希望镜中出现的是一个平凡人,我们希望看到一个很特别的人:不论有没有意识到这一点,我们就是不想看到一个面临许多阻碍.问题,甚至有点神经质