数组和元组
数组
基本语法
classmates = ['Michael', 'Bob', 'Tracy']
print(classmates)
# ['Michael', 'Bob', 'Tracy']
数组里面的值不限数据类型,比如数字、字符串甚至空值null
和数组。
根据索引获取值
classmates[0]
# Michael
classmates[1]
# Bob
classmates[2]
# Tracy
# 获取最后一个元素
classmates[-1]
# Tracy
所以和c语言以及java一样都是从0开始的。
在末尾添加元素
classmates.append('Adam')
print(classmates)
# ['Michael', 'Bob', 'Tracy', 'Adam']
插入元素
# 前面一个参数是插入的位置(索引),后面是需要插入的值。
classmates.insert(1, 'Jack')
print(classmates)
# ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
# 对比一下原来的数组
# ['Michael', 'Bob', 'Tracy', 'Adam']
删除末尾元素
classmates.pop()
# 也就是'Adam'
print(classmates)
# ['Michael', 'Jack', 'Bob', 'Tracy']
删除指定位置的元素
classmates.pop(1)
# 也就是'Jack'
print(classmates)
# ['Michael', 'Bob', 'Tracy']
替换元素
# 直接进行赋值即可
classmates[1] = 'Sarah'
print(classmates)
# ['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)
对原列表进行排序 |
元组
基本语法
classmates = ('Michael', 'Bob', 'Tracy')
现在,classmates这个元组不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。
只需要记住上述特性即可
详细讲解参照:
Python 元组 | 菜鸟教程
字典
定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
字典的创建就相当于给对象添加了索引,比如在一张学生表中,我们通过学生的学号可以查询到学生一样。本质上为了方便数据的存储和查找。
查询字典
举个例子就可以理解
students ={"001":"小明","002":"小红"}
print(students["001"])
print(students["002"])
# 小明
# 小红
也就是
数组名称+[key值]
修改字典
students = {"001":"小明","002":"小红"}
students["001"] = "张三"
students["003"] = "李四"
print(students["001"])
print(students["002"])
print(students["003"])
# 张三
# 小红
# 李四
删除字典元素
# 删除某一元素
students = {"001":"小明","002":"小红","003":"张三"}
del students["001"] #删除key为"001"的元素
print(len(students))
# 2
######################
# 清空所有元素
students = {"001":"小明","002":"小红","003":"张三"}
students.clear()
print(len(students))
# 0
######################
# 删除字典
students = {"001":"小明","002":"小红","003":"张三"}
del students
字典的特性
- 不允许同一个key出现两次,如果出现则只记录最后一个的value。
例如:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Name': 'Manni'}
print ("tinydict['Name']: ", tinydict['Name'])
# tinydict['Name']: Manni
序号 | 函数及描述 |
---|---|
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() 返回并删除字典中的最后一对键和值。 |