Python基础入门笔记:数据结构

2018-09-2010:05:46后端程序开发Comments1,999 views字数 1422阅读模式

数据结构

Python 有四种数据结构,分别是:列表、字典、元组、集合。我们先从整体上认识一下这四种数据结构:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

list = [val1,val2,val3,val4] #列表
dict = {key1:val1,key2:val2} #字典
tuple = (val1,val2,val3,val4) #元组
set = {val1,val2,val3,val4}	#集合
复制代码

4.1 列表(List)

  1. 列表中的每个元素都是可变的;
  2. 列表中的元素是有序的,也就是说每个元素都有一个位置;
  3. 列表中可以容纳 Python 中的任何对象。如下:
    all_in_list = [
        1, #整数
        1.0, #浮点数
        'a word', #字符串
        print(1), #函数
        True, #布尔值
        [1,2], #列表中套列表
        (1,2), #元祖
        {'key':'value'} #字典
    ]
    复制代码

另外,对于数据的操作,最常见的为增删改查。在此就省略了,网上找下相应函数练习下即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

4.2 字典(Dict)

  1. 字典中数据必须是以键值对的形式出现的;
  2. 逻辑上讲,键是不能重复的;
  3. 字典中的键(key)是不可变的,也就是无法修改的,而值(value)是可变的,可修改的,可以是任何对象。下面是个例子:
    NASDAQ_code = {
        'BIDU':'Baidu',
        'SINA':'Sina',
        'YOKU':'Youku'
    }
    复制代码

一个字典中键与值并不能脱离对方而存在,如果你写成了 {'BIDU':} 会引发一个语法错误:invalid syntax文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

如果试着将一个可变(mutable)的元素作为 key 来构建字典,比如列表:key_test = {[]:'a Test'} ,则会报一个错:unhashable type:'list'文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

同时字典中的键值不会重复,即便你这么做,相同的键值也只能出现一次:a = {'key':123,'key':123}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

增删改查操作,在此省略了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

备注:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

  • 列表中用来添加多个元素的方法为extend,在字典中添加多个元素的方法为update()
  • 字典是不能切片的,即这样的写法是错误的:chart[1:4]

4.3 元组(Tuple)

元组可以理解为一个稳固版的列表,因为元组是不可以修改的,因此在列表中的存在的方法均不可以使用在元组上,但是元组是可以被查看索引的,方式和列表一样。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

letters = ('a, 'b', 'c', 'd')
letters[0]
复制代码

相关的操作找代码练习下即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

4.4 集合(Set)

集合则更接近数学上集合的概念。每一个集合中是的元素是无序的、不重复的任意对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

a_set = {1,2,3,4}
a_set.add(5)
a_set.discard(5)
复制代码

4.5 数据结构的一些技巧

4.5.1 多重循环

如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

Python基础入门笔记:数据结构

代码演示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

for a, b in zip(num, str):
    print(b, 'is', a)
复制代码

4.5.2 推导式

列表推导式的用法很好理解,可以简单地看成两部分。如下图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

Python基础入门笔记:数据结构

红色虚线后面的是我们熟悉的 for 循环的表达式,而虚线前面的可以认为是我们想要放在列表中的元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

代码演示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

a = []
for i in range(1, 11):
    a.append(i)
复制代码

可以换成列表解析的方式来写:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

b = [i for in i range(1, 11)]
复制代码

列表解析式不仅方便,并且在执行效率上要远远胜过前者。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5152.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/5152.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定