Python数据结构(一):列表、元组和序列

简介: Python数据结构(一):列表、元组和序列

1.序列类型及操作


序列是具有先后关系的一组元素。序列是一个基类类型,具体可以表现为字符串类型、元组类型、列表类型。

序列是一维元素向量,元素类型可以不同。


它类似于数学当中的元素序列(数列):s1,s2,...,sn-1。


元素间由序号引导,通过下标访问序列的特定元素。 这些序号同样服从正向递增和反向递减的引导规律。


也就是正向递增:1,2,3,...,n-1           反向递减:-n,-(n-1),...,-3,-2,-1


下面我们来介绍几种序列类型通用操作符、通用函数和方法:👇👇👇



我们举几个例子来更好的理解这几个序列通用操作符:👇👇👇

s=["python" , 123 , ".io"]
x="python"
print(x in s)
输出结果如下:
True


s=["python" , 123 , ".io"]
x="python"
print(x not in s)
输出结果如下:
False
s=["python" , 123 , ".io"]
x=["abc" , 456]
print(s+x)
输出结果如下:
['python', 123, '.io', 'abc', 456]
s=["python" , 123 , ".io"]
print(s*2)
输出结果如下:
['python', 123, '.io', 'python', 123, '.io']
s=["python" , 123 , ".io"]
print(s[0])
输出结果如下:
python
s=["python" , 123 , ".io"]
print(s[0 : 2])
print(s[ : : -1])
输出结果如下:
['python', 123]
['.io', 123, 'python']


那么,以上就是序列操作中几种通用操作符的使用方法!!!

下面,我们再来介绍一下序列类型中通用函数和方法:👇👇👇

s=["python" , 123 , ".io"]
print(len(s))
输出结果如下:
3
s=["red" , "blue" , "yellow" , "green"]
print(min(s))
print(max(s))
输出结果如下:
blue
yellow
s=["red" , "blue" , "yellow" , "green" , "red"]
print(s.count("red"))
print(s.index("red"))
输出结果如下:
2
0


2.元组类型及操作


元组同样也是一种序列类型,但是它是序列类型的一种扩展,一旦创建就不能被修改。


使用小括号()或tuple()创建,元素间用逗号分隔。当然可以使用或不使用小括号。其中,元组继承了序列类型的全部通用操作!!!


下面我们来看一下元组的创建过程:👇👇👇


①不适用tuple()来创建  


t1=()
t2=("python")
t3=("python" , )
print(t1)
print(t2)
print(t3)
输出结果如下:
()
python
('python',)

②使用tuple()来创建

t1=tuple("red")
t2=tuple([1 , "red" , 36 , "python"])
t3=tuple()
print(t1)
print(t2)
print(t3)
输出结果如下:
('r', 'e', 'd')
(1, 'red', 36, 'python')
()


3.列表类型及操作(重点)


列表也是一种序列类型,它同元组一样也是序列类型的一种扩展,十分常用,与元组类型不同的地方是:列表创建之后可以随意的进行修改。


可以使用方括号 [ ] 或者 list()创建,元素间用逗号分隔。


列表中各元素类型可以不同,没有长度限制。


下面我们来介绍几种常用的列表类型操作函数和方法:👇👇👇




以上这些就是常用的列表类型操作函数和方法了,下面我们编写几个小程序的例子来帮助大家更好的理解它们!!!


ls=["cat" , "dog" , "pig" , 1024]
print(ls[1]) #访问列表中第2个元素,下标是从0开始的!!!
ls[1 : 3]=[1  , 2 , 3 , 4] #将列表中区间[1,3)位置的所有元素替换成后面新的列表
print(ls)
输出结果如下:
dog
['cat', 1, 2, 3, 4, 1024]


ls=["cat" , "dog" , "pig" , 1024]
del ls[0 : 2] #删除列表中区间为[0,2)内的所有元素
print(ls)
输出结果如下:
['pig', 1024]
ls=["cat" , "dog" , "pig" , 1024 , 999]
del ls[ : : 2] #从列表开始到结束,删除步长为2的所有元素
print(ls) 
输出结果如下:
['dog', 1024]


上面的这种方法,我们使用的是方括号[]来创建列表的。下面,我们来使用list()方法来创建列表。👇👇👇


ls=list(["cat" , "dog" , 1024 , "pig" , 999])
ls.append(1234) #在列表的最后增加一个元素
print(ls)
输出结果如下:
['cat', 'dog', 1024, 'pig', 999, 1234]


ls=list(["cat" , "dog" , 1024 , "pig" , 999])
ls.insert(2 , "python")
print(ls)
输出结果如下:
['cat', 'dog', 'python', 1024, 'pig', 999]


ls=list(["cat" , "dog" , 1024 , "pig" , 999])
ls.clear()
print(ls)
输出结果如下:
[]
ls=list(["cat" , "dog" , 1024 , "pig" , 999])
la=ls.copy()
print(la)
输出结果如下:
['cat', 'dog', 1024, 'pig', 999]
ls=list(["cat" , "dog" , 1024 , "pig" , 999])
ls.pop(2)
print(ls)
输出结果如下:
['cat', 'dog', 'pig', 999]
ls=list(["cat" , "dog" , 1024 , "pig" , 999 , "cat"])
ls.remove("cat") #remove方法所要删除的元素必须在列表中出现,否则程序运行会报错!!!
print(ls)
输出结果如下:
['dog', 1024, 'pig', 999, 'cat']
ls=list(["cat" , "dog" , 1024 , "pig" , 999 , "cat"])
ls.reverse()
print(ls)
输出结果如下:
['cat', 999, 'pig', 1024, 'dog', 'cat']
ls=list(["cat" , "dog" , 1024 , "pig" , 999 , "cat"])
lt=list(["python" , 365])
ls.extend(lt) #将列表lt中的所有内容添加到列表ls的最后面
print(ls)
输出结果如下:
['cat', 'dog', 1024, 'pig', 999, 'cat', 'python', 365]


另外,我们如果想要访问和遍历列表元素或者元组元素,可以看下面的代码:👇👇👇

#列表的访问和遍历
ls=list(["cat" , "dog" , 1024 , "pig" , 999 , "cat"])
print(ls[0],ls[-1])
for item in ls :
            print(item,end=",")
print()
i=0
while i < len(ls) :
            print(ls[i],end=",")
            i+=1
输出结果如下:
cat cat
cat,dog,1024,pig,999,cat,
cat,dog,1024,pig,999,cat,


#元组的访问和遍历
t1=tuple(["cat" , "dog" , 1024 , "pig"])
print(t1[0],t1[-1])
for item in t1 :
            print(item,end=",")
print()
i=0
while i < len(t1) :
            print(t1[i],end=",")
            i+=1
输出结果如下:
cat pig
cat,dog,1024,pig,
cat,dog,1024,pig,

最后要说的是,列表和元组两种类型是可以相互转换的,方法就是list()和tuple()!!!👇👇👇


t1=("Python" , "C" , "C++" , "Java")
ls=["Python" , "C" , "C++" , "Java"]
print(list(t1))
print(tuple(ls))
输出结果如下:
['Python', 'C', 'C++', 'Java']
('Python', 'C', 'C++', 'Java')


以上就是Python数据结构的第一部分内容:序列,列表和元组。那么第二部分的内容(字典,集合)将在一周之后更新!


相关文章
|
3月前
|
测试技术 数据处理 Python
Python列表推导式:简洁高效的数据处理利器
Python列表推导式:简洁高效的数据处理利器
221 80
|
2月前
|
测试技术 API 开发者
淘宝关键词搜索商品列表API接入指南(含Python示例)
淘宝关键词搜索商品列表API是淘宝开放平台的核心接口,支持通过关键词检索商品,适用于比价、选品、市场分析等场景。接口提供丰富的筛选与排序功能,返回结构化数据,含商品ID、标题、价格、销量等信息。开发者可使用Python调用,需注意频率限制与错误处理,建议先在沙箱环境测试。
|
2月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
55 1
|
2月前
|
JSON 数据挖掘 API
闲鱼商品列表API响应数据python解析
闲鱼商品列表API(Goodfish.item_list)提供标准化数据接口,支持GET请求,返回商品标题、价格、图片、卖家信息等。适用于电商比价、数据分析,支持多语言调用,附Python示例代码,便于开发者快速集成。
|
2月前
|
JSON API 数据格式
微店商品列表API响应数据python解析
微店商品列表API为开发者提供稳定高效获取商品信息的途径,支持HTTP GET/POST请求,返回JSON格式数据,含商品ID、名称、价格、库存等字段,适用于电商数据分析与展示平台搭建等场景。本文提供Python调用示例,助您快速上手。
|
3月前
|
人工智能 索引 Python
[oeasy]python094_使用python控制音符列表_midi_文件制作
本文介绍了如何使用Python控制音符列表制作MIDI文件。首先回顾了列表下标索引(正数和负数)的用法,接着通过`mido`库实现MIDI文件生成。以《两只老虎》为例,详细解析了代码逻辑:定义音高映射、构建旋律列表、创建MIDI文件框架,并将音符插入音轨。还探讨了音符时值与八度扩展的实现方法。最终生成的MIDI文件可通过不同平台播放或编辑。总结中提到,此技术可用于随机生成符合调性的旋律,同时引发对列表其他实际应用的思考。
87 5
|
3月前
|
XML JSON API
深入研究: 亚马逊 amazon商品列表API接口 Python 攻略
本内容介绍了亚马逊商品列表API接口的应用价值与操作方法。在电商数据分析驱动决策的背景下,该接口可自动化获取商品基本信息(如名称、价格、评价等),助力市场调研、竞品分析及价格监控等场景。接口通过设置搜索条件(关键词、类目、价格范围等)筛选商品列表,以GET请求方式调用,返回JSON或XML格式数据,包含商品基本信息、价格、评价、图片链接及库存状态等内容。合理使用此接口可提升运营效率、降低人力成本并及时掌握市场动态。
|
10月前
|
存储 算法
非递归实现后序遍历时,如何避免栈溢出?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
213 59
|
3月前
|
编译器 C语言 C++
栈区的非法访问导致的死循环(x64)
这段内容主要分析了一段C语言代码在VS2022中形成死循环的原因,涉及栈区内存布局和数组越界问题。代码中`arr[15]`越界访问,修改了变量`i`的值,导致`for`循环条件始终为真,形成死循环。原因是VS2022栈区从低地址到高地址分配内存,`arr`数组与`i`相邻,`arr[15]`恰好覆盖`i`的地址。而在VS2019中,栈区先分配高地址再分配低地址,因此相同代码表现不同。这说明编译器对栈区内存分配顺序的实现差异会导致程序行为不一致,需避免数组越界以确保代码健壮性。
41 0
栈区的非法访问导致的死循环(x64)

热门文章

最新文章

推荐镜像

更多