001、Python数据结构
#! usr/bin/env python
# _*_ coding:utf-8 _*_ from random import randint '''
一、list的增删改查
1、list.append(x):把一个元素添加到列表的结尾。
2、list.extend(L):将一个给定列表中的所有元素都添加到另一个列表中。
3、list.insert(i, x):在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前。
4、list.remove(x):删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
5、list.pop([i]):从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。
元素随即从列表中被删除(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。
6、list.clear():从列表中删除所有元素。相当于 del a[:]。
7、list.index(x):返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
8、list.count(x):返回 x 在列表中出现的次数。
9、list.sort():对列表中的元素就地进行排序。
10、list.reverse():就地倒排列表中的元素。
11、list.copy():返回列表的一个浅拷贝。等同于 a[:]。 12、列表推导式:squares = [x**2 for x in range(10)]
列表推导式由包含一个表达式的括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句。
结果是一个列表,由表达式依据其后面的 for 和 if 子句上下文计算而来的结果构成。 例如,如下的列表推导式结合两个列表的元素,如果元素之间不相等的话: >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
''' list1 = []
list1.append(10)
list1.append(20) list2 = ['a','b','a','c']
list1.extend(list2)
list1.insert(1,8)
print(list1.index('a'))
print(list1.count('a'))
list2.sort()
list1.reverse()
print(list1.pop(-2))
print(list1)
print(list2)
print(list1) list3 = [x**2 for x in range(10)]
print(list3) list4 = [(x,y) for x in [1,2,3] for y in [3,1,4] if x != y]
print(list4) '''
二、元组
1、t = 12345, 54321, 'hello!' 是 元组封装 (tuple packing)的一个例子:值 12345 , 54321 和 'hello!' 被封装进元组。
其逆操作可能是这样:
>>> x, y, z = t 三、集合
1、Python 还包含了一个数据类型 —— set (集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。 大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}。后者用于创建空字典 四、字符串、列表、元组、字典之间转换
''' t = 1245,45322,'hello'
print(t) basket = {'apple','orange','pear','banana','apple','orange'}
print(basket)
print('orange' in basket)
print('sfdsf' in basket) a = set('abracadabra')
print(a)
运行结果:{'c', 'b', 'a', 'd', 'r'}
b = set('alacazam')
c = set(['cat','dog','animal','fish','dog'])
#交集
print(a & b) #并集
print(a | b) #差集letters in a but not in b print(a - b) #异或 letters in a or b but not both print(a ^ b) #集合推导式,类似于列表推导式
a = {x for x in 'abdgfdg' if x not in 'abc'}
print(a) '''
一、字典
对一个字典执行 list(d.keys()) 将返回一个字典中所有关键字组成的无序列表(如果你想要排序,只需使用 sorted(d.keys()) )。
[2] 使用 in 关键字(指Python语法)可以检查字典中是否存在某个关键字(指字典)。 dict() 构造函数可以直接从 key-value 对中创建字典: '''
tel = {}
tel['jack'] = 4098
tel['yuehan'] = 9527
print(tel) listDict1 = [('name','旺旺'),('age',18),('sex','man')]
print(listDict1)
a = dict(listDict1)
print(sorted(a.keys())) print(dict(sape=4139, guido=4127, jack=4098)) #字典推导式
dict1 = {x:x**2 for x in range(10)}
print(dict1) '''
一、循环技巧
1、enumerate():在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到
2、zip():同时循环两个或更多的序列,可以使用 zip() 整体打包:
3、reversed():
4、sorted():
sort是容器的函数:sort(cmp=None, key=None, reverse=False)
sorted是python的内建函数:sorted(iterable, cmp=None, key=None, reverse=False) 5、format():格式化函数
''' #字典循环中,关键字和对应的值可以使用item()方法同时解读出来
knights = {'name':'旺旺','age':18,'sex':'man'} for k,v in knights.items():
print(k,v) for k,v in enumerate(['test','document','java','script']):
print(k,v) questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue'] for q,a in zip(questions,answers):
print('What is your {0}? It is {1}.'.format(q,a)) for i in reversed(range(1,10,2)):
print(i) for i in sorted(range(1,10,2),reverse=True):
print(i) words = ['cat', 'window', 'defenestrate']
for w in words[:]:
if len(w) > 6:
words.insert(0,w)
print(words)
001、Python数据结构的更多相关文章
- python数据结构与算法
最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...
- python数据结构与算法——链表
具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...
- python数据结构之图的实现
python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...
- Python数据结构与算法--List和Dictionaries
Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...
- Python数据结构与算法--算法分析
在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...
- Python数据结构与循环语句
# Python数据结构与循环语句: 首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟. 关于买书: 学会python之后,才需要买书 ...
- python数据结构之栈与队列
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
- python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)
python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...
- Python数据结构之四——set(集合)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...
- Python数据结构之单链表
Python数据结构之单链表 单链表有后继结点,无前继结点. 以下实现: 创建单链表 打印单链表 获取单链表的长度 判断单链表是否为空 在单链表后插入数据 获取单链表指定位置的数据 获取单链表指定元素 ...
随机推荐
- 【Linux】1、命令行及命令参数
命令行及命令参数 文章目录 命令行及命令参数 1.命令行提示符 2.命令和命令参数 简单的命令 date ls 命令参数 短参数(一个字母) 长参数(多个字母) 参数的值 其它参数 3.小结 4.参考 ...
- 【System】进程,线程和任务之间的区别是什么?
任务(task)是最抽象的,是一个一般性的术语,指由软件完成的一个活动.一个任务既可以是一个进程,也可以是一个线程.简而言之,它指的是一系列共同达到某一目的的操作.例如,读取数据并将数据放入内存中.这 ...
- 【Oracle】 并行查询
所谓并行执行,是指能够将一个大型串行任务(任何DML,一般的DDL)物理的划分为叫多个小的部分,这些较小的部分可以同时得到处理.何时使用并行执行:1.必须有一个非常大的任务 2.必须有充足的资源(CP ...
- 注解 @AutoConfigureBefore 和 @AutoConfigureAfter 的用途
注解 @AutoConfigureBefore 和 @AutoConfigureAfter 的用途 介绍: 如果你想将在SpringBoot项目中的配置类进行排序,那么用到spring-boot-au ...
- mysql忽略表中的某个字段不查询
业务场景 1.表中字段较多 2.查询不需要表中某个字段的数据 语句如下: SELECT CONCAT(' select ',GROUP_CONCAT(COLUMN_NAME),' from ', TA ...
- GlusterFS数据存储脑裂修复方案最全解析
本文档介绍了glusterfs中可用于监视复制卷状态的heal info命令以及解决脑裂的方法 一. 概念解析 常见术语 名称 解释 Brick GlusterFS 的基本存储单元,由可信存储池中服务 ...
- 一步步使用SpringBoot结合Vue实现登录和用户管理功能
前后端分离开发是当今开发的主流.本篇文章从零开始,一步步使用SpringBoot结合Vue来实现日常开发中最常见的登录功能,以及登录之后对用户的管理功能.通过这个例子,可以快速入门SpringBoot ...
- 干货 | 质量保障新手段,携程回归测试平台实践 原创 Sedro 携程技术 2021-01-21
干货 | 质量保障新手段,携程回归测试平台实践 原创 Sedro 携程技术 2021-01-21
- 【Coredump】调试之旅
测试反馈,core了. 拿到环境,发现6和11,一个是重复释放,一个是非法指针. 用GDB一挂 ,发现 1 GNU gdb (GDB) 7.5 2 Copyright (C) 2012 Free So ...
- Http系列:断点续传与多线程下载
前言 当下载电影时,我常常会想中断下载后,为什么点击开始时会在中断的地方继续下载呢?又或者在看在线电影时,为什么可以按着播放条拖动就能看到想看的片段呢? http的range请求将解决以上困惑. 多线 ...