Home

韧桂

思考,总结

Python-学习之旅-4-数据结构

前言

数据结构基本上就是——它们是可以处理一些 数据 的 结构 。或者说,它们是用来存储一组相关数据的。

在 Python 中有三种内建的数据结构——列表、元组和字典。

列表 (List ):

1.说列表,要从序列说起,Python语言里最基本的数据结构就是序列。序列中的每个元素都有一个索引,第一个元素的索引是0,第二个是1…,依次类推 。

2.列表可以说是Python中最常用的数据类型,列表的中的元素类型可以是不同的 ;也就是说我的列表里可以都是字符串,都是数字,或者既有字符串也有数字 。

3.创建一个列表,只要把逗号 , 分隔的不同的数据项使用方括号括 [] 起来即可,这样Python就知道你是在指明一个列表。

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是 可变的 数据类型,即这种类型是可以 被 改变 的。

可以使用 append() 方法来添加列表项 ,而 del 是用来删除列表元素的方法,也就是delete的简写

   # -*- coding: utf-8 -*-
   list = ['Google', 'Runoob', 1997, 2000]
   print ("第三个元素为 : ", list[2])
   list[2] = 2001
   print ("更新后的第三个元素为 : ", list[2])
   
   输出:
   第三个元素为 :  1997
   更新后的第三个元素为 :  2001
   list = ['Google', 'Runoob', 1997, 2000]
   print ("原始列表 : ", list)
   del list[2]
   print ("删除第三个元素 : ", list)
   
   输出:
   原始列表 :  ['Google', 'Runoob', 1997, 2000]
   删除第三个元素 :  ['Google', 'Runoob', 2000]

使用 append() 在尾部添加元素,使用 insert() 在列表中插入元素,使用 pop() 删除尾部的元素。

lists = ['a','b','c']
lists.append('d')
print lists

print len(lists)

lists.insert(0,'mm')
lists.pop()
print lists

运行结果:
['a', 'b', 'c', 'd']
4
['mm', 'a', 'b', 'c']
  1. 列表是使用对象和类的一个例子。一个类(类型)int 的对象(实例)i

  2. 我们可以用len([1,2,3])来获取一个列表的长度,还有我们能用 + 加号把两个列表组合起来,就像 [1,2,3]+[4,5,6]会变成[1,2,3,4,5,6]

  3. 列表对 + * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

元组:

  1. Python的元组与上节课讲的列表很相似,但有个不同点,就是元组中的元素 不能修改 ,还有列表我们使用的是方括号[]吗,而在元组中我们要使用小括号() 不需要括号也可以 .

  2. 元组创建十分容易,在括号中添加元素,然后使用逗号 , 将元素隔开即可。就像这样 tup1 = ('apple', 'iphone', 2016, 2017) ,tup2 = (55, 66, 77, 88, 99) , 还可以这样 tup3 = 'x', 'y', 'z'

  3. 当我们想要创建一个空元组时,可以这样写 tup = () , 还有一点要注意 , 当元组中只有 一个 元素时,我们需要在这个元素后面添加一个逗号,例如: tup = (123,)

  4. 元组中的元素值是不可以被修改的,因此如果像列表一样tup[0]=999是非法的操作 。但我们可以对元组进行连接组合

  5. #!encoding: utf-8
    tup1 = (1,2,3);
    tup2 = ('apple', 'orange');
    tup3 = tup1 + tup2;
    print (tup3)
    

    再来看元组的del 。元组是不允许删除其中元素值的,但我们能通过del方法来删 除整个元组,就像这样 :

    tup = ('Google', 'Runoob', 1997, 2000)
        
    print (tup)
    del tup;
    print ("删除后的元组 tup : ")
    print (tup)
       
       
    以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
    Traceback (most recent call last):
      File "test.py", line 8, in <module>
        print (tup)
    NameError: name 'tup' is not defined
    
  6. 同样的元组也能用len()获取长度 ,我们还能这样写(100,)*4,它会输出(100,100,100,100) ,列表也可以这样写

  7. 再来看一个小知识点,同样是元组和列表都适用的哦 。我们可以这样for x in (1, 2, 3): print x,来遍历一个元组的元素

字典Dictionary :

  1. 这里的字典也是另一种数据类型,它能够存储任何类型的对象。 字典写在大括号里{},然后字典中的每个键值对key: value之间用逗号,,来分割 ,就像下面这样:dict = {key1 : value1, key2 : value2 }

  2. 我们举个例子,在生活中使用时字典,比如我们查找apple,翻到对应页码会有apple的解释–苹果 ,那么这个apple就是key,我们叫做键,苹果就是对应的value,叫做值 .

  3. 就刚才那个例子,写成代码是这样的: dict = { 'apple': '苹果' } 要记住:字典中的 键 必须是 唯一 的, 值 可以 不唯一 ! 值可以采用 任意数据类型 ,但键的类型必须是像 字符串 ,数字或元组这样不可变的,

    我创建了一个字典,用Name、Sex、Hobby做为键值,并写了对应的值

    #!/usr/bin/python3
    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    print ("dict['Name']: ", dict['Name'])
    print ("dict['Age']: ", dict['Age'])
          
    以上实例输出结果:
    dict['Name']:  Runoob
    dict['Age']:  7
    
  4. 我们再来看看字典的元素如何修改和删除 。还以刚才的字典为例,

    假如我们想修改姓名,也就是Name这个key对应的值,这样写 dict['Name'] = 'Lisa' 简单吧。

    添加新的键值时,比如我们要添加一个学校的键值对,这样写: dict['School'] = 'CXY School'

    那么如何删除字典元素呢 ,还记得列表删除元素用什么吗? 假如我们不想要key是Age的这个键值对了,我们可以 del dict['Age] 这样这个字典里Age就不存在了 。我们还可以用dict.clear()来清除整个字典 。

    同样的,可以通过del dict删除这个字典,不过删除后再使用这个字典就会报错,以为这个dict已经从内存中删除了 。而dict.clear()后再使用dict则不会报错,因为这个字典依旧存在,只不过里面是空的

  5. 关于字典的使用,有两点必须要记住 。

    1、同一个键不可以出现两次。如果一个字典中有相同的键,那么最后一个键的值将会覆盖先前的值,

    比如这样: dict = {'Name': 'Jack', 'Height': 175, 'Name': 'Lisa'}

    这时我们如果通过dict[‘Name’]获取值的话,将会获取’Lisa’,而’Jack’因为后面出现了相同的key被覆盖了

    2、键的类型必须是不可变的,比如数字或字符串等,像可变类型的列表就不行

  6. 字典还有很多用法,比如我们可以通过dict.keys()返回一个字典中所有的键 。对应的可以通过dict.values()返回一个字典中所有的值

欢迎关注我的公众号:「韧桂」

韧桂 2018-07-05