ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

四、组合数据类型

2021-12-18 17:59:55  阅读:148  来源: 互联网

标签:组合 Python 元素 数据类型 列表 dict 元组 字典


1. 认识组合数据类型

(1)Python中常用的序列类型有字符串列表元组

(2)Python中的序列支持双向索引:正向递增索引和反向递减索引正向递增索引从左向右依次递增,第一个元素的索引为0,第二个元素的索引为1,以此类推;反向递减索引从右向左依次递减,从右数第一个元素的索引为-1,第二个元素的索引为-2,以此类推。

(3)Python集合具备确定性、互异性无序性三个特性。Python要求放入集合中的元素必须是不可变类型,Python中的整型、浮点型、字符串类型和元组属于不可变类型,列表、字典及集合本身都属于可变的数据类型。

确定性:给定一个集合,那么任何一个元素是否在集合中就确定了 。 互异性:集合中的元素互不相同 。 无序性:集合中的元素没有顺序,顺序不同但元素相同的集合可视为同一集 合。

 (4)映射类型以键值对的形式存储元素,键值对中的键与值之间存在映射关系。字典(dict)是Python唯一的内置映射类型,字典的键必须遵守以下两个原则:

每个键只能对应一个值,不允许同一个键在字典中重复出现 。 字典中的键是不可变类型 。

2. 列表

(1) 创建列表

Python列表的创建方式非常简单,既可以直接使用中括号“[]”创建,也可以使用内置的list()函数快速创建。

list_one = []      	 # 使用[]创建空列表
li_two = list() 	 # 使用list()创建空列表

在Python中,支持通过for…in…语句迭代获取数据的对象就是可迭代对象。目前,我们学习过可迭代的类型有字符串和列表,后续学习的集合、字典、文件也是可迭代类型的对象。使用isinstance()函数可以判断目标是否为可迭代对象,返回True表示为可迭代对象。

from collections.abc import Iterable
ls = [3,4,5]
print(isinstance(ls, Iterable))

(2)访问列表元素

列表中的元素可以通过索引或切片这两种方式进行访问,也可以在循环中依次访问。

list_one = ["Java", "C#", "Python", "PHP"]        #示例

print(list_one[1])             #索引

print(list_one[1])             #切片

for li in li_one:
    print(li, end=' ')         #循环

(3)添加列表元素

向列表中添加元素是非常常见的一种列表操作,Python提供了append()、extend()和insert()这几个方法。

list_one = ["Java", "C#", "Python", "PHP"]        #示例

list_one.append("C++")                        #append 在列表末尾添加元素


list_one.extend([["Android", "IOS",])         #extend 在列表末尾添加另一个序列的所有元素


list_one.insert(2,“HTML")                     #insert 按照索引将元素插入列表的指定位置


(4)元素排序

列表的排序是将元素按照某种规定进行排列。列表中常用的排序方法有sort()、reverse()、sorted()。

li_one = [6, 2, 5, 3]           #示例

list_one.sort()                 #sort 有序的元素会覆盖原来的列表元素,不产生新列表


li_two = sorted(li_one)         #sorted 产生排序后的新列表,排序操作不会对原列表产生影响


li_one.reverse()                #reverse 逆置列表,即把原列表中的元素从右至左依次排列存放

删除列表元素的常用方式有del语句、remove()方法、pop()方法和clear()方法。

li_one = [6, 2, 5, 3, 3]          #示例

del li_one[0]           #del 删除列表中指定位置的元素


li_one.remove(3)        #remove 移除列表中匹配到的第一个元素

       
li_one.pop()            #pop 移除列表中的某个元素,若未指定具体元素,则移除列表中的最后一个元素


li_one.clear()          #clear 清空列表

(5)列表推导式

列表推导式是符合Python语法规则的复合表达式,它用于以简洁的方式根据已有的列表构建满足特定需求的列表。列表推导式的基本格式如下:

[exp for x in list]

列表推导式还可以结合if判断语句或for循环嵌套,生成更灵活的列表:

带 有 if 语句的列表推导 式 for 循环嵌套的列表推导 式 带 有 if 语句与 for 循环嵌套的列表推导式

3. 元组

元组的表现形式为一组包含在圆括号“()”中、由逗号分隔的元素,元组中元素的个数、类型不受限制。除了使用()构建元组外,还可以使用内置函数tuple()构建元组。

t1 = ()	# 使用()构建元组

t2 = tuple()	# 使用tuple构建元组

当使用圆括号“()”创建元组时,如果元组中只包含一个元素,那么需要在该元素的后面添加逗号,从而保证Python解释器能够识别其为元组类型。

t1 = ('python') 
t2 = ('python',)
print(type(t1))
print(type(t2))
<class 'str'>
<class 'tuple'>

元组支持以索引和切片方式访问元组的元素,也支持在循环中遍历元组。

tuple_demo = ('p','y','t', 'h', 'o','n')          #示例

tuple_demo[2]               #使用索引

tuple_demo[2:5]             #使用切片

for i in tuple_demo:        #遍历元组
    print(i)

4. 集合

Python的集合(set)本身是可变类型,但Python要求放入集合中的元素必须是不可变类型。大括号“{}”或内置函数set()均可构建集合。

s1 = {1}	 # 使用{}构建集合

s2 = set([1,2])	 # 使用set构建元组

需要注意,使用{}不能创建空集合(不包含元素的{}创建的是字典变量),空集合只能利用set()函数创建。

set_demo1 = {}
set_demo2 = set()
print(type(set_demo1))
print(type(set_demo2))
<class 'dict'>
<class 'set'>

集合是可变的,集合中的元素可以动态增加或删除。Python提供了一些内置方法来操作集合,常见内置方法如下:

集合也可以利用推导式创建,集合推导式的格式与列表推导式相似,区别在于集合推导式外侧为大括号“{}”,具体如下:

 

{exp for x in set if cond}

5. 字典

(1)创建字典

字典的表现形式为一组包含在大括号“{}”中的键值对,每个键值对为一个字典元素,每个元素通过逗号“,”分隔,每对键值通过“:”分隔,除了使用“{}”创建字典还可以使用内置函数dict创建字典。

d1 = {'A': 123, 12: 'python'}	 # 使用{}构建集合

d2 = dict({'A': '123', 'B': '135'})	 # 使用dict构建元组

(2)字典的访问

字典的值可通过“键”或内置方法get()访问。

d2 = dict({'A': '123', 'B': '135'})       #示例

d2['A']             #键 '123'

d2.get('B')         #get() '135'

字典涉及的数据分为键、值和元素(键值对),除了直接利用键访问值外,Python还提供了内置方法keys()、values()和items()。

info = {'name': 'Jack','age':23,'height':185}       #示例

info.keys()       #获取所有键 dict_keys(['name', 'age', 'height'])



info.values()     #获取所有值 dict_values(['Jack', 23, 185])



info.items()      #获取所有元素 dict_items([('name', 'Jack'), ('age', 23), ('height', 185)])


 

(3)元素的添加和修改

字典支持通过为指定的键赋值或使用update()方法添加或修改元素,下面分别介绍如何添加和修改字典元素。

通过 键 添 加元素: 字典变量 [ 键 ] = 值

         使用update()添加元素:dict.update(key=value

add_dict = {'name': 'Jack','age':23,'height':185}       #示例

add_dict['sco'] = 98       #通过键添加


add_dict.update(sco=98)	   #使用update方法添加

修改字典元素的本质是通过键获取值,再重新对元素进行赋值。修改元素的操作与添加元素的操作相同。

modify_dict = {'stu1': '小明', 'stu2': '小刚', 'stu3': '小兰'}      #示例

modify_dict['stu3'] = '刘婷'      #通过键修改


modify_dict.update(stu2='张强')   #使用update方法修改

(4) 字典元素的删除

Python支持通过pop()、popitem()和clear()方法删除字典中的元素

p op() :根据指定键值删除字典中的指定元 素 popitem () :随 机删除字典中的元 素 clear () :清 空字典中的元素 (5)字典推导式

字典推导式外侧为大括号“{}”,且内部需包含键和值两部分,具体格式如下:

{new_key:new_value for key,value in dict.items()}

利用字典推导式可快速交换字典中的键和值,示例如下:

old_dict = {'name': 'Jack','age':23,'height':185}
new_dict = {value:key for key,value in old_dict.items()}
print(new_dict)
{'Jack': 'name', 23: 'age', 185: 'height'}

6. 组合数据类型与运算

Python中针对数字类型的运算符对组合数据类型同样适用,包括+、*、in、not in。

字符串、列表和元组 使用 “ + ”运算符, 会对数据进行拼 接 字符串、列表和元组 使用 “ * ”运算符, 会对数据进行整数倍拼 接 “ in”“not in” 运算符称为成员运算符,用于判断某个元素是否属于某个变 量

标签:组合,Python,元素,数据类型,列表,dict,元组,字典
来源: https://blog.csdn.net/Xianana_x/article/details/122012873

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有