python基础数据结构_Python基础01 基本数据结构(上)

Python基础01 基本数据结构(上)

一、概述

Python基本数据结构包含以下几种类型:字符串,列表,元组,字典,集合。Python支持一种数据结构的基本概念,名为容器。容器基本上就是可包含其他对象的对象。两种主要的容器是序列(列表、元组)和映射(字典)。集合是既不是序列也不是映射的容器。

1、字符串是一种重要的Python内置序列,具有序列基本操作(索引、切片、相乘、长度和最大(小)值)。字符串是不能修改。

2、Python常用的序列:列表和元组,

列表是一种常用的Python内置序列,具有序列基本操作(索引、切片、相乘、长度和最大(小)值)。列表是可以更改的,如中途增加元素。

元组:是一种常用的Python内置序列,具有序列基本操作(索引、切片、相乘、长度和最大(小)值)。元组是不能修改的。

3、字典是通过名称来访问其各个值的数据结构,这种数据结构称为映射。字典包含键和值,键的类型包含数(整数,浮点数),字符串和元组等任何不可变的类型(键不可以是列表)。

二、序列的基本操作

1、索引,序列中的所有元素都有一个编号,Python语言当中第一个元素的索引为0。通过正数索引时,Python从左往右数获取对应编号的元素值;通过负数索引,Python从

右往左获取对应编号的元素值。

nun[0]

2、切片,通过索引访问特定范围的数据元素。指定范围包含第一个索引对应元素值,第二个索引为切片后剩余元素中的第一个元素的编号,所以第二个索引的元素值不包含在切片中。

num[2:-1] # 包含num[2],不包含num[-1](最右边的元素值)

num[2:] # 包含num[2]到最右边的元素值

num[:-1] # 包含num[0]到num[-2]的元素值

num[:] # 包含整个序列

num[1:10:2] # 切片步数为2

3、相乘,将序列与n相乘,是重复序列n次来创建一个新的序列

[2,3] * n

4、成员资格检查,检查序列中是否包含给定值,或者检查字典中是否包含给定的键。成员资格检查使用布尔运算符 in

5 in range(10)

5、内置函数获取序列的长度和最大(小)值

print(len([1, 2])) #使用函数len返回序列包含的元素个数

print(max([1, 2])) #使用函数max返回序列最大值

print(min([1, 2])) #使用函数min返回序列最小值

笔记:

1、字符串和序列是通过索引访问各个值,而字典通过名称(键名)访问各个值

2、字典成员资格检查查找的键而不是值,而列表成员资格检查是直接查找值而不是索引

3、容器,容器是包含其他对象的对象。容器是一种数据结构的基本概念

4、内置函数 list(实际是一个类) 可以使用任意序列作为参数。字符串作为 list 参数时,可以将字符串转化为字符列表;通过内置函数 join 可以将字符列表转化为字符串。

5、内置函数 tuple 将任意序列作为参数,并将其转换为元组返回,如果又来的序列就是元组,则原封不动返回该元组。

语法1-字符串方法、列表方法、字典方法

字符串类型的数据具有以下方法,对象可以通过 “对象.方法” 调用方法。内置函数 dir 返回参数的属性、方法列表。

通过print(dir(str))输出字符串类型的数据的内置方法:

有点奇怪的是代码:import string print(dir(string)) 显示的内置方法如下:string是一个模块

列表的内置方法 print(dir(list))

元组的内置方法 print(dir(tuple))

字典的内置方法 print(dir(dict)),dicr是所有字典所属的类型。

笔记:

1、方法sort有两个参数:key,reverse;key为排序依据。参数key设置为一个自定义函数 x.sort(key = 函数名),提高排序的灵活性;参数reverse决定sort是降序(reverse = ture)还是升序(reverse = false)

语法2-基本的列表操作、基本的元组操作、字典操作

基本的列表操作

1、修改列表,给列表赋值

num[0] = 2

2、删除列表元素

del num[0] = 2

3、切片赋值

num = ['p','o','l','y']

num[1:] = list('ython')#输出 ['p','y','t','h','o','n']

基本的元组操作

元组不可以修改,所以元组的操作除创建元组和访问元组,可执行操作不多。

创建一个只包含一个值的元组:

42,

(42,)

#以上两种方式都可以创建一个只包含一个只的元组(42,)

三、字典操作

创建字典

1、以两个花括号 {}b表示,里面包含的键和值用:分隔。键的类型包含数(整数,浮点数,当值相等时表示同一个键),字符串和元组(元组里面的元素需要是字符串和数等不可变的元素,不能是列表或者字典等可变的元素)等任何不可变的类型(键不可以是列表)。

x = (['a'], 42)print(x)

y= {'a': 'b', (1, 2): 'c', 42: 'age'}print(y)

z= {'a': 'b', ([1], 2): 'c', 42: 'age'}print(z)

2、函数 dict

函数 dict 可以从其他映射或者键-值对序列创建字典

items1 = [('number', 2)] # 键-值对,如果items1 = ['number', 2]就会出bug

d=dict(items1)print(d)

items2= dict(numbers='2')print(items2)

items3= dict(numbers=2)print(items3)

3、字典方法 copy 和 fromkeys

dict.formkeys(seq[,val]):键来自序列,而值为val(默认为 None)

y = x.copy(),浅复制

语法3-设置字符串的格式

1、%

描述:转换说明符(如%s)指出要将设置的值插入哪个位置,s意味着将按字符串进行格式设置。

语法:指定字符串(格式字符串) % 指定要设置其格式的值

foo = 'hello,%s.%s are you!'value= ('pony', 'how')print(foo %value)print(foo)

x= foo %valueprint(x)

笔记:

模板字符串:用string模块里的Template

from string importTemplate

a= Template('would it be the ${key1} when we meet in ${key2}')print(a.substitute(key1='same', key2='heaven'))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值