数组和元组

数组

基本语法

  1. classmates = ['Michael', 'Bob', 'Tracy']
  2. print(classmates)
  3. # ['Michael', 'Bob', 'Tracy']

数组里面的值不限数据类型,比如数字、字符串甚至空值null和数组。

根据索引获取值

  1. classmates[0]
  2. # Michael
  3. classmates[1]
  4. # Bob
  5. classmates[2]
  6. # Tracy
  7. # 获取最后一个元素
  8. classmates[-1]
  9. # Tracy

所以和c语言以及java一样都是从0开始的。

在末尾添加元素

  1. classmates.append('Adam')
  2. print(classmates)
  3. # ['Michael', 'Bob', 'Tracy', 'Adam']

插入元素

  1. # 前面一个参数是插入的位置(索引),后面是需要插入的值。
  2. classmates.insert(1, 'Jack')
  3. print(classmates)
  4. # ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
  5. # 对比一下原来的数组
  6. # ['Michael', 'Bob', 'Tracy', 'Adam']

删除末尾元素

  1. classmates.pop()
  2. # 也就是'Adam'
  3. print(classmates)
  4. # ['Michael', 'Jack', 'Bob', 'Tracy']

删除指定位置的元素

  1. classmates.pop(1)
  2. # 也就是'Jack'
  3. print(classmates)
  4. # ['Michael', 'Bob', 'Tracy']

替换元素

  1. # 直接进行赋值即可
  2. classmates[1] = 'Sarah'
  3. print(classmates)
  4. # ['Michael', 'Sarah', 'Tracy']

数组的脚本操作符

Python 表达式 结果 描述
len([1, 2, 3]) 3 获取数组长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
[‘Hi!’] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重复
3 in [1, 2, 3] True 元素是否存在于列表中

其余方法和函数

序号 函数
1 cmp(list1, list2)

比较两个列表的元素 | | 2 | len(list)

列表元素个数 | | 3 | max(list)

返回列表元素最大值 | | 4 | min(list)

返回列表元素最小值 | | 5 | list(seq)

将元组转换为列表 |

序号 方法
1 list.append(obj)

在列表末尾添加新的对象 | | 2 | list.count(obj)

统计某个元素在列表中出现的次数 | | 3 | list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) | | 4 | list.index(obj)

从列表中找出某个值第一个匹配项的索引位置 | | 5 | list.insert(index, obj)

将对象插入列表 | | 6 | list.pop([index=-1])

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 | | 7 | list.remove(obj)

移除列表中某个值的第一个匹配项 | | 8 | list.reverse()

反向列表中元素 | | 9 | list.sort(cmp=None, key=None, reverse=False)

对原列表进行排序 |

元组

基本语法

  1. classmates = ('Michael', 'Bob', 'Tracy')

现在,classmates这个元组不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。
只需要记住上述特性即可
详细讲解参照:
Python 元组 | 菜鸟教程


字典

定义

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

  1. d = {key1 : value1, key2 : value2 }
  1. 字典的创建就相当于给对象添加了索引,比如在一张学生表中,我们通过学生的学号可以查询到学生一样。本质上为了方便数据的存储和查找。

查询字典

举个例子就可以理解

  1. students ={"001":"小明","002":"小红"}
  2. print(students["001"])
  3. print(students["002"])
  4. # 小明
  5. # 小红

也就是数组名称+[key值]

修改字典

  1. students = {"001":"小明","002":"小红"}
  2. students["001"] = "张三"
  3. students["003"] = "李四"
  4. print(students["001"])
  5. print(students["002"])
  6. print(students["003"])
  7. # 张三
  8. # 小红
  9. # 李四

删除字典元素

  1. # 删除某一元素
  2. students = {"001":"小明","002":"小红","003":"张三"}
  3. del students["001"] #删除key为"001"的元素
  4. print(len(students))
  5. # 2
  6. ######################
  7. # 清空所有元素
  8. students = {"001":"小明","002":"小红","003":"张三"}
  9. students.clear()
  10. print(len(students))
  11. # 0
  12. ######################
  13. # 删除字典
  14. students = {"001":"小明","002":"小红","003":"张三"}
  15. del students

字典的特性

  1. 不允许同一个key出现两次,如果出现则只记录最后一个的value。

例如:

  1. tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'}
  2. print ("tinydict['Name']: ", tinydict['Name'])
  3. # tinydict['Name']: Manni
  1. key值不可变,也就是只能用数字、字符串、元组来表示key。

    字典的内置方法和函数

    下面的了解即可,使用的时候可以回过头来查询。
序号 函数及描述
1 cmp(dict1, dict2)
比较两个字典元素。
2 len(dict)
计算字典元素个数,即键的总数。
3 str(dict)
输出字典可打印的字符串表示。
4 type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。
序号 函数及描述
1 dict.clear()
删除字典内所有元素
2 dict.copy()
返回一个字典的浅复制
3 dict.fromkeys(seq[, val])
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4 dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
5 dict.has_key(key)
如果键在字典dict里返回true,否则返回false
6 dict.items()
以列表返回可遍历的(键, 值) 元组数组
7 dict.keys()
以列表返回一个字典所有的键
8 dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 dict.update(dict2)
把字典dict2的键/值对更新到dict里
10 dict.values()
以列表返回字典中的所有值
11 pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12 popitem()
返回并删除字典中的最后一对键和值。