千家信息网

Python数据结构列表是怎样的

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,Python数据结构列表是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。正则小练习:匹配出以下字符串所有url,i
千家信息网最后更新 2025年11月08日Python数据结构列表是怎样的

Python数据结构列表是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。


正则小练习:匹配出以下字符串所有url,

import re def find_url(sentence, show_urls=None, delete_urls=None):    r = re.compile(        r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»""'']))')    url_list = r.findall(sentence)    if show_urls == 1:        for i in url_list:            print(i[0])     if delete_urls == 1:        for j in url_list:            # sentence = sentence.replace(j[0], '')            sentence = sentence.replace(j[0], '')        return sentence    return "匹配完成"  if __name__ == '__main__':    str1 = '你好哇 大佬 www.google.com' str2 = '哇 www.baidu.com 打不开了' str3 = 'python网址在哪儿 https://www.python.com 找到了'

对于字符串的基础使用基本已经阐述完毕!需要复杂使用的还需项目实战以及向大佬们请教。后面的几篇文章还是想阐述关于数据结构的一些基础使用。字符串可以看作为只存储字符序列的数据结构,同样为了方便众多使用者的理念,Python提供了几个功能强大且高效的数据结构:列表、元组、字典以及集合。作为使用者的我们只需要组合使用即可。

在开始数据结构使用前,需要介绍一个Python的另一个内置函数:type(),该函数在我们需要了解值或变量的数据类型时极为方便。如下:type输出结果中包含class 类,可以返回特定值和变量或者是否为模块函数。在代码调试过程中,该函数会起到很大的作用,例如在使用数据集合但并不知集合内部的数据类型时,可以使用type准确的返回对象类型。

1 序列

在Python中,序列是一组按顺序排列的值。Python 有 3 种内置的序列类型:字符串、 元组和列表。

序列支持切片、索引,同时具备以下特征:

  • 1 第一个正索引为零,指向左端;

  • 2 第一个负索引为 -1,指向右端;

  • 3 可使用切片表示法来复制子序列;

  • 4 可使用 + 和 * 进行拼接;

  • 5 可使用函数 len 计算其长度,例如,len(string) 返回序列 string 包含的元素数;

  • 6 表达式 x in string 检查序列 string 是否包含元素 x 。

2 列表

在Python中,列表的元素不是固定不变的,而是可变的,也就是表示可在不复制的情况下,添加、删除或修改列表元素。列表使用方括号将元素括起来,里面的元素使用逗号分开,举几个简单示例:随便定义一个num列表,可以使用+和*拼接列表,也可以使用len()获取列表长度,并且,同样可以使用切片和索引方式来获取列表中的子列表。

需要注意的是:列表可包含任何类型的值:数字、字符串甚至其他序列。空列表用 [] 表示,而只包含一个元素(x)的单元素列表写做 [x] 。其访问方式与字符串的索引方式一样,以num2为例,如下图:列表索引从 0 开始,第二个索引是 1,依此类推。当然也可以从右向左进行索引。

除了以上索引功能,列表也支持修改元素的功能,如下图我们将num2中的indexes=3的值777改为了'red'字符串,Python对原值进行了删除。

这里可以得到一个结论:列表元素指向相应的值,这也产生了一个十分有趣的作用。这里让一个列表元素指向列表本身,创建了一个自引用的数据结构;打印输出中的 [...] 表明,Python可以识别自引用,不会愚蠢的不断打印列表(功能强大!) 。

2.1 列表函数

Python针对列表也提供了十分强大的函数,整理如下表所示:除count返回值只返回一个数字之外,其他所有函数都涉及到修改传递给它们的列表。使用时一定小心,不然会误删列表中的元素或者在错误的位置插入元素。

以函数append为例,在列表num末尾添加一个元素,简单的一种编程模式,在函数开头创建一个空列表,然后再列表中添加元素,

如下:判断一个列表中的数据是正数还是负数。

def list_num(list):    msg = []    for num in list:        if num < 0:            s = str(num) + ' 是负数'        elif 0 <= num <= 9:            s = str(num) + ' 是正数'        msg.append(s)    return msg if __name__ == '__main__':    print(list_num([3,-10.7,22,-99,1]))

extend列表追加函数的使用:

pop删除函数的使用:

其它相关函数的使用就不一一举例了,有兴趣的可以自己体验一下。

2.2 列表排序

对数据进行排序是计算机最常做的事情 之一。无论是对人还是计算机来说,排序后 的数据通常比未排序的数据更容易处理。例如,在列表中查找最小的元素时,如果列表经过了排序,就根本不需要查找:第一个元素就是,人们的习惯就是喜欢排列有序的数据(特例除外哈)。

在 Python 中,要对列表进行排序,最简 单的方式是使用函数 sort() 。实际上,这个函数可用于对包含数万个元素的列表进行快速排序,同时可以修改列表。

如下:sort总是按照从小到大的顺序排序,若需要相反的顺序排列元素,先调用sort方法之后在使用reverse方法。

Python还可以给包含元组(将在下次讲解)的列表进行排序,

如下:给列表中的元组排序时,首先按元组的 第一个元素排序,如果第一个元素相同,则按第二个元素排序,依此类推。

2.3 解析列表

在实际Python使用中,会有很多地方使用到列表,所以Python提供了一种用于创建列表的特殊表示法-列表解析。下面举例如何使用列表解析来创建 一个由 1~10 的平方组成的列表: 这种表示法的主要优点是简洁易读。for循环代码没有使用列表解析,使用越多就越会发现,列表解析方法编写容易并且简洁。

if __name__ == '__main__':    print([num * num for num in range(1,11)])    print('------------------')    num_list = []    for i in range(1, 11):       num_list.append(i * i)    print(num_list)

在看3个小例子:第一个表示获取1~10的立方,第二个表示修改现有列表的字符串,第三个表示将列表中的数字翻倍并减去3.

使用列表解析过滤筛选需要的结果集,如下:

list = []    num = [-1, 0, 6, -4, -2, 3, 8, -12]    for n in num:        if n > 0:            list.append(n)

对比使用常规循环,可以体现出列表解析更加简洁易读!其它还可以实现诸如删除特定字符串的功能,有兴趣的朋友们可以实现一下删除特定字符串的列表解析,十分简单。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

元素 函数 数据 排序 字符 字符串 序列 索引 数据结构 结构 功能 类型 指向 方式 强大 简洁 数字 方法 表示法 还是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 创建数据库项目1实施条件 天龙八部内测服务器号去哪里买 深圳软件开发外包公司多吗 微信公众号软件开发怎么入账 上海语甄网络技术有限公司 学之书数据库 软件开发哪个更好 数据库用户角色和服务器角色 计算机网络技术的论文5000字 仪器仪表国外代理服务器 想学手机软件开发 sap hana服务器配置 中国网络技术创新大会 数据库创建修改删除表简单例子 串口服务器的原理 浙江视觉引导点胶软件开发 虹口区网络技术服务以客为尊 手机卡服务器已断开咋回事 数据库 不适合虚拟化 弥勒服务器云存储网址 我的世界国际版进入服务器方法 智慧食堂餐饮系统软件开发 冬奥期间网络安全怎样干 瑞金软件开发系统 网络技术专业擅长什么 常用的语音聊天软件开发 蓝博网络技术 长沙 提高网络安全黑板报 桌面墙纸软件开发 软件开发项目云南省工信备案
0