Python有4种数据结构:列表(list)、字典(dictionary)、元组(Tuple)、集合(set)。从最直接的感官上来说,这四种数据结构的区别是:列表中的元素使用方括号括起来,字典和集合是花括号,元组是圆括号,其中字典中的元素都是带有“:”的key-value对应关系组。

1、列表(List)

#1、列表中的每一个元素都是可以变的
#2、列表中的元素都是有序的,也就是说每一个元素都有一个位置
#3、列表可以容纳Python中的任何对象 fruit = ['Apple','Orange','pear']
fruit.insert(1,'grape') #在第二个数据前面插入
print(fruit)
fruit.remove('pear') #删除
print(fruit)
fruit[0] = 'Grapefruit' #替换
print(fruit)

2、字典(Dictionary)

#1、字典中数据必须是以键值对的形式出现
#2、逻辑上,键是不能重复的,而值可以重复
#3、字典中的键Key是不可变的,也就是无法修改的。而值Value是可变的,可修改的,可以是任何对象 a = {'key':'','key':''} #重复的键值对,只会输出一个
print(a) Nasdaq_code = {'BIDU':'baidu','SINA':'sina'}
Nasdaq_code['YOKU'] = 'youku' #添加元素
print(Nasdaq_code)
Nasdaq_code.update({'FB':'facebook','TSLA':'Tesla'}) #批量添加
print(Nasdaq_code)
del Nasdaq_code['FB'] #删除元素
print(Nasdaq_code)

3、元组(Tuple)

#1、元组不可修改
#2、元组可被查看索引,方式同列表
letters = ('a','b','c','d','e','f')
print(letters[0])

4、集合(Set)

#1、集合中的元素是无序、不重复的任何对象
#2、集合不能被切片也不能被索引。可做集合运算,集合元素可以被添加还有删除 a_set = {1,2,3,4}
a_set.add(5) #添加
print(a_set)
a_set.discard(5) #删除
print(a_set)

5、推导式(列表解析式)

  现在我有10个元素要装进列表中,普通的写法是这样的:

下面换成列表解析的方式来写,是这样的:

  如下图,列表推导式可以简单的看成两部分。红色虚线后面的是我们熟悉的for循环表达式,虚线前面的可以认为是我们想要放在列表中的元素。

列表解析式的执行效率比较:(列表解析式的执行效率较高,性能较优)

#推导式 list = [item for item in iterable],先iterable,在进行item的输出
import time
a=[]
t0 = time.clock()
for i in range(1,2000):#使用循环时的执行时间
a.append(i)
print(time.clock() - t0,'seconds process time') t0 = time.clock()
b=[i for i in range(1,200)]#使用列表解析式的执行时间
print(time.clock() - t0,'seconds process time')
#列表解析式示例
a = [i**2 for i in range(1,10)]
print(a)
c = [j+1 for j in range(1,10)]
print(c)
k = [n for n in range(1,10) if n %2 ==0]
print(k)
z = [letter.lower() for letter in 'ABCDEFGHIGKLMN']
print(z)
d = {i:i+1 for i in range(4)}
print(d)
g = {i:j for i,j in zip(range(1,6),'abcde')}
print(g)
l = {i:j.upper() for i,j in zip(range(1,6),'abcde')}
print(l)

Python学习笔记系列——数据结构相关的更多相关文章

  1. python学习笔记系列----(三)数据结构

    这一章主要是介绍了python一些常用的数据结构,比如list,tuple,dictionary,set,以及一些实用遍历技巧,主要讲的还是list. 3.1 list 主要介绍了list的一些常用的 ...

  2. python学习笔记系列----(一)python简介

    一个月前,就按下决心要系统的学习下python了,虽然之前有学习过java,学习过c++,也能较为熟练的使用java做自动化测试看懂c++里的业务逻辑,但是实际上有那么多的东西自己还是不清楚,今天下定 ...

  3. Python学习笔记系列

    1.小甲鱼 python 学习系列笔记

  4. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

  5. python学习笔记五——数据结构

    4 . python的数据结构 数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码.python提供的几种内置数据结构——元组.列表.字典和序列.内置数据结构是Python语言的精 ...

  6. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  7. python学习笔记系列----(七)类

    7.1 python类和相关术语的简介 Python 通过最小的新语法和语义在语言中实现了类. 它是 C++ 或者 Modula-3 语言中类机制的混合.类的大多数重要特性都被完整的保留下来:类继承机 ...

  8. python学习笔记系列----(五)输入和输出

    这一章主要是讲述程序展示其数据的一些方法,一般都是直接按照一定的格式输出在屏幕,或者写入到文件以便以后使用.按照一定格式的输出,在python中实际就是对str的操作,主要就是介绍了formart() ...

  9. python学习笔记系列----(二)控制流

    实际开始看这一章节的时候,觉得都不想看了,因为每种语言都会有控制流,感觉好像我不看就会了似的.快速预览的时候,发现了原来还包含了对函数定义的一些描述,重点讲了3种函数形参的定义方法,章节的最后讲述了P ...

随机推荐

  1. 关于JqueryCheck选中获取数据

    关于Jquery获取Check选中数据 首先还是得引用Jquery的包,然后新增3个CheckBox <div> <input type="checkbox" n ...

  2. python中新式类和经典类

    python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...

  3. c# 异步和同步问题(转载)

    [C#] 谈谈异步编程async await   为什么需要异步,异步对可能起阻止作用的活动(例如,应用程序访问 Web 时)至关重要. 对 Web 资源的访问有时很慢或会延迟. 如果此类活动在同步过 ...

  4. pjax 和 ajax 的区别

    pjax 是一个 jQuery 插件,它通过 ajax 和 pushState 技术提供了极速的(无刷新 ajax 加载)浏览体验,并且保持了真实的地址.网页标题,浏览器的后退(前进)按钮也可以正常使 ...

  5. ExpressRoute 线路预配工作流和线路状态

    本页从较高层面引导你完成服务预配和路由配置工作流. 下图和相应的步骤说明了预配端到端 ExpressRoute 线路所要执行的任务. 使用 PowerShell 配置 ExpressRoute 线路. ...

  6. 借助System.Linq.Dynamic, IQueryable根据排序字符串排序

    在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再 ...

  7. Oracle诊断工具 - ORA-4030 Troubleshooting Tool

    ORA-4030 说明Oracle服务器进程(server process)无法在操作系统(OS)上分配到足够的内存.   导致ORA-4030 的主要原因有: -物理内存不足 -OS kernel/ ...

  8. 理解和配置Out of memory: Kill process

    转自:爱开源 理解 OOM killer 最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题.这通 ...

  9. vue的项目

    vue的项目打开也是非常具有解耦性的 最重要的就是src目录了  我们的入口在main中  main是你的实例化vue  app中就是我们的每一块田地是我们的vue实例对这个的操作 ,index因为是 ...

  10. Redis(三)Redis基本命令操作与API

    一Redis 连接 Redis 连接命令主要是用于连接 redis 服务. 实例 以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行: redis 127.0.0.1: ...