Python 中列表、元组、字典的学习

在具体学习 列表、元组、字典 之前,我们需要先知道:

Python 中包含 6 个序列(sequence)的内置类型,即 列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象

序列通用的操作包括:索引、长度、组合(序列相加)、重复(乘法)、分片、检查成员、遍历、最小值和最大值。

一、列表

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

num_list = [1, 2, 3, 4, 5, 6]
str_list = ["zhangsan", "lisi", "wangwu"]
temp_list = [1,2, "baidu", "aliyun",[3, 4, 5]]
spe_list = [(1, 2, 3), 4, 5,{"name" : "zhangsan", "age" : 18}]

如图所示,使用 type() 函数查看 temp_list 的类型,确是 list 在这里插入图片描述

列表包含的函数有

函数 描述
len(list) 列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表

简单定义一个列表作为函数的练习例子:

list1 = [1, 3, 2, 6, 4, 7, 5]

在这里插入图片描述

在本次学习中,我们将按照“增、删、改、查”四类操作来进行。

列表包含的方法有:

如图所示,在 ipython 中输入 list1,后面敲一个句点 “.” ,按下Tab键,即可得到关于列表操作的各种方法。在这里插入图片描述

增:

方法 描述
list.append(obj) 在列表末尾添加新的对象
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.insert(index, obj) 将对象插入列表

在这里插入图片描述

注意:此处的试错,‘int’ ’ object is not iterable. 整型int不是可迭代的。

从结果上对比看出两者的不同。

在这里插入图片描述

删:

方法 描述
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.clear() 清空列表

在这里插入图片描述

改:

方法 描述
list.sort( key=None, reverse=False) 对原列表进行排序
list.reverse() 反向列表中元素
list.copy() 复制列表

在这里插入图片描述
在这里插入图片描述

查:index索引,从0开始

方法 描述
list.count(obj) 统计某个元素在列表中出现的次数
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置

在这里插入图片描述

二、元组

元组使用小括号

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

在这里插入图片描述

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用

在这里插入图片描述

元组内置函数和列表相同,tuple(seq) 可将类别转换成元组,此处不再演示。

元组的数据不允许修改,但可以用del语句删除整个元组

tuple1 = ('Google', 'Runoob', 1997, 2000 )
del tuple1
print("删除后的元组 tuple1 :" )
print(tuple1)

在这里插入图片描述

查:可以使用下标索引来访问元组内的值

在这里插入图片描述
在这里插入图片描述

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

在这里插入图片描述

列表和元组的异同有哪些?

相同点:

1、均具有序列的特性,均可以进行序列通用的操作;

2、通常均使用括号表示,且括号内的元素以逗号分隔值出现,数据项均不需要具有相同的类型;

3、均包含内置函数max、min、len;

4、均可以转换为对方;

不同点:

1、定义不同

    1)列表使用方括号括起来的。

    2)元组使用小括号括起来的。

2、是否可修改

    1)列表可修改

    2)元组不可修改

3、转换方式

    1)列表转元组:tuple(seq)

    2)元组转列表: list(seq)

4、是否含内置方法

    1)列表提供11个内置方法list.append(obj)、list.count(obj)、list.extend(seq)、list.index(obj)、list.insert(index, obj)、list.pop([index=-1]])、list.remove(obj)、list.reverse()、list.sort(cmp=None, key=None, reverse=False)、list.clear()、list.copy();

    2)元组未提供内置方法

三、字典

字典是另一种可变容器模型,且可存储任意类型对象

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

在这里插入图片描述
在这里插入图片描述

内置函数有:

函数 描述
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典,以可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。

内置方法有:

方法 描述
dict.fromkeys(seq[, value]) 用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值。
dict.copy() 返回一个字典的浅复制。
pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)。如果字典已经为空,却调用了此方法,就报出KeyError异常。
dict.clear() 用于删除字典内所有元素。

显示键值对内容的三个方法:

在这里插入图片描述

字典的基本操作:


xiaoming_dict = {"name":"小明",
            "age":19,
            "gender":True,
            "height":1.75}
# 指定 key
# 1.取值
print(xiaoming_dict["name"])
# 在取值的时候,如果指定的key不存在,程序会报错

# 2.增加/修改
# 如果key不存在,会新增键值对
xiaoming_dict["weight"] = 160
# 如果key存在,会修改已经存在的键值对
xiaoming_dict["name"] = "张三"

# 3.删除
# 在删除键值对的时候,如果指定的key不存在,程序会报错!
xiaoming_dict.pop("gender")


print(xiaoming_dict)

字典的其他操作

xiaoming_dict = {"name":"张三",
                 "age":19}
# 1.统计键值对数量
print(len(xiaoming_dict))

# 2.合并字典
temp_dict = {"height":1.75,
             "age":20}
# 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
xiaoming_dict.update(temp_dict)

# 3.清空字典
# xiaoming_dict.clear()

print(xiaoming_dict)

字典的遍历

xiaoming_dict = {"name":"小明",
                 "qq":"1206183",
                 "phone":"10086"}
# 迭代遍历字典
# 变量 k 是每一次循环中,获取到的键值对的key
for k in xiaoming_dict:
    print("%s : %s " % (k,xiaoming_dict[k]))

以上内容为本人对列表、元组、字典的学习演练,若有失误错谬之处,敬请指正。

猜你喜欢

转载自blog.csdn.net/weixin_44649906/article/details/88352079