Python学习 第十章 高级变量类型

高级变量类型

数据类型 分为 数字型 非数字型

在这里插入图片描述
非数字型变量:
在这里插入图片描述

数据类型详细

List 列表

最频繁使用的数据类型,在其他语言中通常被称为 数组
作用:使用一个变量,存储多个数据。

name_list = ['zs', 'ls', 'ww']
print(name_list)

[‘zs’, ‘ls’, ‘ww’]

在这里插入图片描述
拿第一个数据

name_list = ['zs', 'ls', 'ww']
print(name_list)
print(name_list[0])

[‘zs’, ‘ls’, ‘ww’]
zs

列表 一个大格子,里面多个小格子,取出数据,要根据小格子编号进行读取,编号从0开始

列表的操作

针对列表有11个操作:
例子:
在这里插入图片描述

取值
举例子

name_list[0]

取索引
输出 数据的 位置

name_list = ['zs', 'ls', 'ww']
print(name_list)

print(name_list.index('zs'))

[‘zs’, ‘ls’, ‘ww’]
0

修改

name_list = ['zs', 'ls', 'ww']
print(name_list)
name_list[0] = '我'
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘我’, ‘ls’, ‘ww’]

增加
append
最后面添加数据

name_list = ['zs', 'ls', 'ww']
print(name_list)
name_list.append('王小二')
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘zs’, ‘ls’, ‘ww’, ‘王小二’]
insert
指定索引位置插入数据

name_list = ['zs', 'ls', 'ww']
print(name_list)
name_list.insert(0, '王小二')
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘王小二’, ‘zs’, ‘ls’, ‘ww’]

extend
将后面的数组批量添加到第一个数组末尾

name_list = ['zs', 'ls', 'ww']
print(name_list)
a = ["追加1", '追加2', '追加3']
name_list.extend(a)
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘zs’, ‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]

删除数据
remove
clear
pop 弹

remove
删除指定数据

name_list = ['zs', 'ls', 'ww']
print(name_list)
a = ["追加1", '追加2', '追加3']
name_list.extend(a)
print(name_list)
name_list.remove('追加1')
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘zs’, ‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]
[‘zs’, ‘ls’, ‘ww’, ‘追加2’, ‘追加3’]

pop
默认删除列表中最后一个元素

name_list = ['zs', 'ls', 'ww']
print(name_list)
a = ["追加1", '追加2', '追加3']
name_list.extend(a)
print(name_list)
name_list.pop()
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘zs’, ‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]
[‘zs’, ‘ls’, ‘ww’, ‘追加1’, ‘追加2’]

pop指定删除元素索引

name_list = ['zs', 'ls', 'ww']
print(name_list)
a = ["追加1", '追加2', '追加3']
name_list.extend(a)
print(name_list)
name_list.pop(0)
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘zs’, ‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]
[‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]

clear
清空元组列表

name_list = ['zs', 'ls', 'ww']
print(name_list)
a = ["追加1", '追加2', '追加3']
name_list.extend(a)
print(name_list)
name_list.clear()
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘zs’, ‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]
[]

del
del本质上是将该变量从内存中删除
del xxx[n]

name_list = ['zs', 'ls', 'ww']
print(name_list)
a = ["追加1", '追加2', '追加3']
name_list.extend(a)
print(name_list)
del name_list[0]
print(name_list)

[‘zs’, ‘ls’, ‘ww’]
[‘zs’, ‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]
[‘ls’, ‘ww’, ‘追加1’, ‘追加2’, ‘追加3’]

总结:
在这里插入图片描述

统计

name_list = ['zs', 'ls', 'ww']
print(name_list)
a = ["zs", '追加2', '追加3']

print(len(name_list))
print(name_list.count('zs'))

[‘zs’, ‘ls’, ‘ww’]
3
1

list统计列表中元素个数
.count统计某个元素出现的个数

排序

列表.sort()
升序-默认

name_list = ['zs', 'ls', 'ww']
num_list = [2, 5, 6, 1, 7, 3, 6, 5]

print(name_list)
print(num_list)
name_list.sort()
num_list.sort()
print(name_list)
print(num_list)

[‘zs’, ‘ls’, ‘ww’]
[2, 5, 6, 1, 7, 3, 6, 5]
[‘ls’, ‘ww’, ‘zs’]
[1, 2, 3, 5, 5, 6, 6, 7]

降序

name_list = ['zs', 'ls', 'ww']
num_list = [2, 5, 6, 1, 7, 3, 6, 5]

print(name_list)
print(num_list)
name_list.sort(reverse=1)
num_list.sort(reverse=1)
print(name_list)
print(num_list)

[‘zs’, ‘ls’, ‘ww’]
[2, 5, 6, 1, 7, 3, 6, 5]
[‘zs’, ‘ww’, ‘ls’]
[7, 6, 6, 5, 5, 3, 2, 1]

关键字 函数 方法 区别

使用关键字 不用小括号
使用函数 和 方法 需要使用 小括号
在这里插入图片描述
关键字 是 表示特殊含义的字符,在使用的时候,不需要使用括号
函数 和 方法 在使用时候,都得使用括号、有时候需要在括号内部使用参数
方法针对的是对象

循环遍历

遍历:从头到尾,依次,从列表中取数据
迭代遍历:重复遍历,重复从列表中拿出一个又一个元素。

使用for进行迭代遍历

name_list = ['zs', 'ls', 'ww']

for i in name_list:
    print(i)

zs
ls
ww

顺序从列表中,依次获取数据,每次循环中,数据都会保存在i这个变量中,在循环体内部可以访问到当前这一次获取到的数据。

for i in 列表变量:
print i

列表应用场景

列表存储相同类型的数据
通过迭代遍历,在循环体内部,针对每一项元素,执行相同的操作。

但是注意 python中的列表是可以存储不同类型的数据的。
比如:

name_list = ['zs', 'ls', 'ww', 1, 1.75]

for i in name_list:
    print(i)

但这种情况是极少极少情况才会遇到的!!!

元组

多个元素组成
元素不能修改
索引同样从0开始
元组使用()定义,列表使用[]定义
元组一旦定义完成,不能进行修改(增删改)
可以保存不同类型的数据

拿元素

tuple = ('zs', 18, 18.5)

print(tuple[0])

zs

定义元组时需要注意,定义只包含一个元素的元组!!! a = (xx, ) 在元素后接,
在这里插入图片描述
在这里插入图片描述

取索引

已经知道数据的内容,希望知道数据在元组中的索引

tuple = ('zs', 18, 18.5)

print(tuple.index("zs"))

0

统计计数

tuple.count('zs')
len(tuple)

原理同list

遍历元组

tuple = ('zs', 18, 18.5)

for i in tuple:
    print(i)

元组中,保存的数据类型,通常是不同的

元组的应用场景

定义函数的参数
函数的返回值
格式字符串
让列表不可被修改,保护数据安全。

在这里插入图片描述

a = ("小喵", 21, 1.85)
print("%s 年龄 是 %d 身高是%.2f" % a)

列表和元组之间转换

在这里插入图片描述

字典

最灵活的数据类型
用来存储无序的数据类型
{}
字典 有 key 和 value
键值对 保存数据
键:获取信息
值:保存信息

通常用于 描述某一个物品的信息
在这里插入图片描述

例子:
在这里插入图片描述

取值

xiaoming = {"name": "小喵"}

print(xiaoming['name'])

小喵

新增 & 修改

xiaoming = {"name": "小喵"}

xiaoming['age'] = 12
print(xiaoming)
xiaoming = {"name": "小喵"}

xiaoming['age'] = 12

print(xiaoming)
xiaoming['name'] = '小小米'
print(xiaoming)

在这里插入图片描述

删除

pop指定key删除

xiaoming = {"name": "小喵"}

xiaoming['age'] = 12
print(xiaoming)
xiaoming.pop('age')
print(xiaoming)

在这里插入图片描述

统计 键值对 个数

xiaoming = {"name": "小喵"}

xiaoming['age'] = 12

print(len(xiaoming))

合并字典

update

xiaoming = {"name": "小喵"}
x = {"age": 12, "gender": 1}
xiaoming.update(x)
print(xiaoming)

注意如果合并的键值对相同key,后面的会覆盖前面的key

清空字典

clear()

xiaoming = {"name": "小喵"}
print(xiaoming)

循环遍历字典

xiaoming = {"name": "小喵", "age": 21, "gender": "female"}

for i in xiaoming:
    print(i)

name
age
gender

xiaoming = {"name": "小喵", "age": 21, "gender": "female"}

for i in xiaoming:
    print(xiaoming[i])

小喵
21
female

应用场景

一个字典中,存储某个对象的多个属性
把多个字典放在一个 列表中,进行存储,用的时候进行遍历

card_list = [
    {"name": "joe",
     "qq": 123,
     "phone": 12312},
    {"name": "kitty",
     "qq": 234,
     "phone": 34324}
]

for i in card_list:
    print(i)

{‘name’: ‘joe’, ‘qq’: 123, ‘phone’: 12312}
{‘name’: ‘kitty’, ‘qq’: 234, ‘phone’: 34324}

字符串

一对双引号 or 单引号 都可以定义一个字符串

str1 = "hello python"
str2 = "我的外号是 大西瓜"

在这里插入图片描述

获取字符串中的元素

str1 = "hello python"
str2 = "我的外号是 大西瓜"

print(str2)
print(str1[6])

我的外号是 大西瓜
p

for循环取出字符串中字符

str2 = "我的外号是 大西瓜"

for i in str2:
    print(i)

统计字符串个数

print(len(str1))
print(str1.count('h'))

取出字符所在位置

str1 = "hello python"
print(str1.index('h'))

0

字符串的相关方法

在这里插入图片描述

is判断类型方法总结:

在这里插入图片描述
大小写转换:
在这里插入图片描述
判断字符串是否为空

str1 = "hello python"
str2 = "  \t\n\r" # \r表示回到行首
print(str1.isspace())
print(str2.isspace())

数字判断

print(str2.isdecimal())
print(str2.isdigit())
print(str2.isnumeric())

从上到下,判断标准越来越宽泛

替换 和查找

在这里插入图片描述

str1 = "hello python"
str2 = "1.5\t\n\r"  # \r表示回到行首

print(str1.startswith("hello"))
print(str1.endswith("on"))
print(str2.find("5"))  # 返回数据的索引位置
# find方法,查找的字符串不存在会返回 -1,index方法查找,不存在会报错
# print(str2.index("123"))
print(str2.find("123"))

# 替换hello为hi
print(str1.replace("hello", "hi"))

在这里插入图片描述

文本对齐在这里插入图片描述
案例:
登鹳雀楼对齐

poem = ["登鹳雀楼",
        "王之涣",
        "白日依山尽,",
        "黄河入海流。",
        "欲穷千里目,",
        "更上一层楼。"]

for i in poem:
    print('|%s|' % i.center(10, " "))
    # print('|%s|' % i.rjust(10, " "))

| 登鹳雀楼 |
| 王之涣 |
| 白日依山尽, |
| 黄河入海流。 |
| 欲穷千里目, |
| 更上一层楼。 |

去重空白字符
在这里插入图片描述
从网上爬取的文章,会存在不规则,需要去除空格

poem = ["\t\n登鹳雀楼",
        "王之涣",
        "白日依山尽,\t\n",
        "黄河入海流。",
        "欲穷千里目,",
        "更上一层楼。"]

for i in poem:
    # 使用strp方法去除字符串中的空白
    i = i.strip()
    print('|%s|' % i.center(10, " "))

拆分和连接
在这里插入图片描述

poem_str = "\t\n登鹳雀楼\t王之涣\t白日依山尽\t\n黄河入海流\t欲穷千里目\t\r\t更上一层楼。"

list = poem_str.split()
print(list)
a = "\n".join(list)
print(a)

在这里插入图片描述

字符串的切片

切片 使用 索引值 来限定范围,从大的 字符串中 切出 小的 字符串
列表 和 元组 都是i游戏集合 通过索引 可以获取到 对应的数据
字典 是 无序 结合 使用 键值对 保存数据

指定 开始索引 结束索引 步长
在这里插入图片描述

举例子:
截取 2-5数字
截取 2到最后一个数字
截取 开始到数据5
截取 完整字符串
每隔1个字符,截取一次
在这里插入图片描述
截取 倒数第一个字符
在这里插入图片描述
截取 最后两个字符
在这里插入图片描述
截取出倒数 字符串
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值