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. java网络编程(UDP详解)

    UDP详解 一,TCP/IP协议栈中,TCP协议和UDP协议的联系和区别? 联系: TCP和UDP是TCP/IP协议栈中传输层的两个协议,它们使用网络层功能把数据包发送到目的地,从而为应用层提供网络服 ...

  2. 【小程序】微信小程序绑定企业微信后怎样获取到用户信息

    一.获取access_token 1.https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT Cor ...

  3. ComboBox Style

    <SolidColorBrush x:Key="ComboBoxNormalBorderBrush" Color="#e3e9ef" /> < ...

  4. 时间选择器(TimePicker)

    时间选择器(TimePicker) 显示一个可供时间选择的界面 常用方法: setIs24HourView(true|false) 设置24小时格式,true为24小时格式 setCurrentHou ...

  5. qemu模拟vexpress-a9及u-boot引导 linux

    前言 本文讲述使用 qemu 来模拟 vexpress-a9 开发板 ,同时介绍使用 u-boot 引导 linux 的流程.整个坐下来对 qemu 和 u-boot 以及嵌入式 linux 的工作方 ...

  6. 转: Dubbo远程调用服务框架原理与示例

    Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和  Spring 框架无缝集成. 主要核心部件: Remoting:  网络通 ...

  7. laravel session的几个特点

    1. 只要访问了网站,就会创建一个临时的session 2.用户登录后sessionid就会发生变化 3.在这期间,即使使用4g网络,ip地址会不断发生变化,只要cookie中包含了sessionid ...

  8. Coroutine及其实现

    线程是内核对外提供的服务,应用程序可以通过系统调用让内核启动线程,由内核来负责线程调度和切换.线程在等待IO操作时线程变为unrunnable状态会触发上下文切换.现代操作系统一般都采用抢占式调度,上 ...

  9. 如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构

    若要将应用程序开发的生成和测试阶段自动化,可以使用持续集成和部署 (CI/CD) 管道. 本教程介绍如何在 Azure VM 上创建 CI/CD 管道,包括如何: 创建 Jenkins VM 安装并配 ...

  10. Vue2学习笔记:v-for指令

    1.使用 <!DOCTYPE html> <html> <head> <title></title> <meta charset=&q ...