组合数据类型

  • 认识组合数据类型

序列类型

Python中常用的序列类型有字符串、列表和元组。

特性

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

确定性:给定一个集合,那么任何一个元素是否在集合中就确定了。

互异性:集合中的元素互不相同。

无序性:集合中的元素没有顺序,顺序不同但元素相同的集合可视为同一集合。

映射类型

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

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

  • 列表

创建列表

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))

访问列表元素

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

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

索引:
print(list_one[1])
切片:
print(list_one[1])
循环:
for li in li_one:

       print(li, end=' ')

添加列表元素

向列表中添加元素是非常常见的一种列表操作,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按照索引将元素插入列表的指定位置

元素排列

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

示例:
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清空列表

列表推导式

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

格式:[exp for x in list]

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

  • 元组

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

示例:
t1 = ()      # 使用()构建元组

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

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

示例:
t1 = ('python')

t2 = ('python',)

print(type(t1))

print(type(t2))

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

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

索引:tuple_demo[2]

切片:tuple_demo[2:5]

遍历元组:for i in tuple_demo:

      print(i)

  • 集合

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))

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

常见操作

说明

S.add(x)

向集合s中添加元素x,x已存在时不做处理

S.remove(x)

删除集合s中的元素x,若x不存在抛出keyerror异常

S.discard(x)

删除集合s中的元素x,若x不存在不做处理

S.pop()

随机返回集合s中的一个元素,同时删除该元素,若s为空,抛出keyerror异常

S.clear()

清空集合s

S.copy()

拷贝集合s,返回值为集合

S.isdisjoint(T)

判断集合s和t中是否没有相同的元素,没有返回true,有则返回false

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

{exp for x in set if cond}

  • 字典

表现形式

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

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

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

访问

字典的值可通过“键”或内置方法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)])

添加和修改

    字典支持通过为指定的键赋值或使用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方法修改

删除

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

pop():根据指定键值删除字典中的指定元素

popitem():随机删除字典中的元素

clear():清空字典中的元素

字典推导式

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

格式:{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)

组合数据类型与运算

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

字符串、列表和元组使用“ + ”运算符,会对数据进行拼接

字符串、列表和元组使用“ * ”运算符,会对数据进行整数倍拼接

“in”“not in”运算符称为成员运算符,用于判断某个元素是否属于某个变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值