python容器:字符串、列表、元组、字典

该博客主要围绕Python编程展开,详细介绍了字符串的格式化、输入输出、下标和切片操作,以及字符串常见操作函数。还阐述了列表、元组和字典的创建、访问、修改、添加和删除等操作。此外,提供了Python学习资源,包括学习路线、开发工具、学习笔记等。
部署运行你感兴趣的模型镜像
字符串特征

在这里插入图片描述

在这里插入图片描述

二、字符串输出


1.格式化操作符

在这里插入图片描述

2.f-strings

在这里插入图片描述

print(“hello world”)

name = ‘ROSE’

我的名字是TOM

print(‘我的名字是%s’ % name)

print(f’我的名字是{name}')

三、字符串输入


在这里插入图片描述

输入密码

password = input(‘请输入您的密码:’)

print(f’您输入的密码是{password}')

print(type(password))

四、下标和切片


1.下标索引

所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间

在这里插入图片描述

在这里插入图片描述

str1 = ‘abcdefg’

print(str1)

数据在程序运行过程中存储在内存

? 得到数据a字符, 得到数据b字符 – 使用字符串中某个特定的数据

这些字符数据从0开始顺序分配一个编号 – 使用这个编号精确找到某个字符数据 – 下标或索引或索引值

str1[下标]

print(str1[0])

print(str1[1])

2.切片

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

str1 = ‘abcdefg’

得到整个字符串数据

print(str1)

下标得到的是下标为某个数字的数据

print(str1[2])

得到abc 这3个数据该怎么办

序列名[开始位置的下标:结束位置的下标:步长]

str1 = ‘012345678’

print(str1[2:5:1]) # 234

print(str1[2:5:2]) # 24

print(str1[2:5]) # 234

print(str1[:5]) # 01234 – 如果不写开始,默认从0开始选取

print(str1[2:]) # 2345678 – 如果不写结束,表示选取到最后

print(str1[:]) # 012345678 – 如果不写开始和结束,表示选取所有

负数测试

print(str1[::-1]) # 876543210 – 如果步长为负数,表示倒叙选取

print(str1[-4:-1]) # 567 – 下标-1表示最后一个数据,依次向前类推

终极测试

print(str1[-4👎1]) # 567

print(str1[-4👎-1]) # 不能选取出数据:从-4开始到-1结束,选取方向为从左到右,但是-1步长:从右向左选取

**** 如果选取方向(下标开始到结束的方向) 和 步长的方向冲突,则无法选取数据

print(str1[-1:-4:-1]) # 876

3.想一想

(面试题)给定一个字符串aStr, 请反转字符串

在这里插入图片描述

五、字符串常见操作


如有字符串mystr = ‘hello world itcast and itcastcpp’,以下是常见的操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

mystr = “hello world and itcast and itheima and Python”

1. find()

print(mystr.find(‘and’)) # 12

print(mystr.find(‘and’, 15, 30)) # 23

print(mystr.find(‘ands’)) # -1 , ands子串不存在

2.index()

print(mystr.index(‘and’)) # 12

print(mystr.index(‘and’, 15, 30)) # 23

print(mystr.index(‘ands’)) # 如果index查找子串不存在,报错

3.count()

print(mystr.count(‘and’, 15, 30))

print(mystr.count(‘and’)) # 3

print(mystr.count(‘ands’)) # 0

4.rfind()

print(mystr.rfind(‘and’))

print(mystr.rfind(‘ands’))

5.rindex()

print(mystr.rindex(‘and’))

print(mystr.rindex(‘ands’))

mystr = “hello world and itcast and itheima and Python”

1. replace() 把and换成he #** 说明replace函数有返回值,返回值是修改后的字符串

new_str = mystr.replace(‘and’, ‘he’)

new_str = mystr.replace(‘and’, ‘he’, 1)

替换次数如果超出子串出现的次数,表示替换所有这个子串

new_str = mystr.replace(‘and’, ‘he’, 10)

# print(mystr)

print(new_str)

***** 调用了replace函数后,发现原有字符串的数据并没有做到修改,修改后的数据是replace函数的返回值

— 说明 字符串是不可变数据类型

数据是否可以改变划分为 可变类型 和 不可变类型

2. split() – 分割,返回一个列表, 丢失分割字符

list1 = mystr.split(‘and’)

list1 = mystr.split(‘and’, 2)

print(list1)

3. join() – 合并列表里面的字符串数据为一个大字符串

mylist = [‘aa’, ‘bb’, ‘cc’]

# aa…bb…cc

new_str = ‘…’.join(mylist)

print(new_str)

mystr = “hello world and itcast and itheima and Python”

1. capitalize() 字符串首字母大写

new_str = mystr.capitalize()

2.title(): 字符串中每个单词首字母大写

new_str = mystr.title()

3. upper():小写转大写

new_str = mystr.upper()

4. lower(): 大写转小写

new_str = mystr.lower()

print(new_str)

mystr = " hello world and itcast and itheima and Python "

print(mystr)

1. lstrip(): 删除左侧空白字符

new_str = mystr.lstrip()

2. rstrip(): 删除右侧空白字符

new_str = mystr.rstrip()

3.strip():删除两侧空白字符

new_str = mystr.strip()

print(new_str)

mystr = “hello world and itcast and itheima and Python”

1. startswith(): 判断字符串是否以某个子串开头

print(mystr.startswith(‘hello’))

print(mystr.startswith(‘hel’))

print(mystr.startswith(‘hels’))

2. endswith(): 判断字符串是否以某个子串结尾

print(mystr.endswith(‘Python’))

print(mystr.endswith(‘Pythons’))

3. isalpha(): 字母

print(mystr.isalpha())

4. isdigit(): 数字

print(mystr.isdigit())

mystr1 = ‘12345’

print(mystr1.isdigit())

5. isalnum() : 数字或字母或组合

print(mystr1.isalnum())

print(mystr.isalnum())

mystr2 = ‘abc123’

print(mystr2.isalnum())

6.isspace(): 空白

print(mystr.isspace())

mystr3 = ’ ’

print(mystr3.isspace())

在这里插入图片描述

六、列表介绍


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

print(name_list)

print(name_list[1])

print(name_list[0])

print(name_list[2])

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

1. index()

print(name_list.index(‘TOM’))

print(name_list.index(‘TOMS’))

2. count()

print(name_list.count(‘TOM’))

print(name_list.count(‘TOMS’))

3.len()

print(len(name_list))

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

1. in

print(‘TOM’ in name_list)

print(‘TOMS’ in name_list)

2. not in

print(‘TOM’ not in name_list)

print(‘TOMs’ not in name_list)

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

需求:注册邮箱,用户输入一个账号名,判断这个账号名是否存在,如果存在,提示用户,否则提示可以注册

“”"

  1. 用户输入账号

  2. 判断if…else

“”"

name = input(‘请输入您的邮箱账号名:’)

if name in name_list:

提示用户名已经存在

print(f’您输入的名字是{name}, 此用户名已经存在’)

else:

提示可以注册

print(f’您输入的名字是{name}, 可以注册’)

七、列表的相关操作


列表中存放的数据是可以进行修改的,比如"增"、“删”、“改”、“查”

1.添加元素("增"append, extend, insert)

append

在这里插入图片描述

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

name_list.append(‘xiaoming’)

name_list.append([11, 22])

print(name_list)

1. 列表数据可改的 – 列表可变类型

2. append函数追加数据的时候如果数据是一个序列,追加整个序列到列表的结尾

extend

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

name_list.extend(‘xiaoming’)

name_list.extend([‘xiaoming’, ‘xiaohong’])

print(name_list)

extend() 追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾

insert

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

name_list.insert(下标, 数据)

name_list.insert(1, ‘aaa’)

print(name_list)

2.修改元素(“改”)

在这里插入图片描述

在这里插入图片描述

3.查找元素("查"in, not in, index, count)

所谓的查找,就是看看指定的元素是否存在

in, not in

在这里插入图片描述

在这里插入图片描述

index, count

在这里插入图片描述

下标

在这里插入图片描述

len():访问列表长度,即列表中数据的个数。

在这里插入图片描述

4.删除元素("删"del, pop, remove)

在这里插入图片描述

demo:(del)

在这里插入图片描述

在这里插入图片描述

demo:(pop)

在这里插入图片描述

在这里插入图片描述

demo:(remove)

在这里插入图片描述

在这里插入图片描述

demo:(clear)[清空列表]

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

1. del

del name_list

del(name_list)

del 可以删除指定下标的数据

del name_list[0]

print(name_list)

2. pop() – 删除指定下标的数据,如果不指定下标,默认删除最后一个数据,

无论是按照下标还是删除最后一个,pop函数都会返回这个被删除的数据

del_name = name_list.pop()

del_name = name_list.pop(1)

print(del_name)

print(name_list)

3. remove(数据)

name_list.remove(‘ROSE’)

print(name_list)

4. clear() – 清空

name_list.clear()

print(name_list)

5.排序(sort, reverse)

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

1. 修改指定下标的数据

name_list[0] = ‘aaa’

print(name_list)

2. 逆序 reverse()

list1 = [1, 3, 2, 5, 4, 6]

list1.reverse()

print(list1)

3. sort() 排序:升序(默认) 和 降序

list1.sort()

list1.sort(reverse=False)

list1.sort(reverse=True)

print(list1)

6.复制(copy)

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

list1 = name_list.copy()

print(list1)

print(name_list)

八、列表的循环遍历


1.使用for循环

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

for i in name_list:

遍历序列中的数据

print(i)

2.使用while循环

在这里插入图片描述

name_list = [‘TOM’, ‘Lily’, ‘ROSE’]

‘’’

  1. 准备表示下标数据

  2. 循环while

条件 i < 3 len()

遍历:依次按顺序访问到序列的每一个数据

i += 1

‘’’

i = 0

while i < len(name_list):

print(name_list[i])

i += 1

九、列表的嵌套


1.列表嵌套

在这里插入图片描述

name_list = [[‘TOM’, ‘Lily’, ‘Rose’], [‘张三’, ‘李四’, ‘王五’], [‘xiaohong’, ‘xiaoming’, ‘xiaolv’]]

print(name_list)

列表嵌套的时候的数据查询

print(name_list[0])

print(name_list[0][1])

2.应用

一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配

在这里插入图片描述

在这里插入图片描述

需求:8位老师,3个办公室, 将8位老师随机分配到3个办公室

“”"

步骤:

  1. 准备数据

1.1 8位老师 – 列表

1.2 3个办公室 - 列表嵌套

  1. 分配老师到办公室

*** 随机分配

就是把老师的名字写入到办公室列表 – 办公室列表追加老师名字数据

  1. 验证是否分配成功

打印办公室详细信息:每个办公室的人数和对应的老师名字

“”"

import random

1. 准备数据

teachers = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’]

offices = [[], [], []]

2. 分配老师到办公室 – 取到每个老师放到办公室列表 – 遍历老师列表数据

for name in teachers:

列表追加数据 – append(选中) extend insert

xx[0] – 不能指定是具体某个下标 – 随机

num = random.randint(0, 2)

offices[num].append(name)

print(num)

print(offices)

为了更贴合生活,把各个办公室子列表加一个办公室编号 1, 2, 3

i = 1

3. 验证是否分配成功

for office in offices:

打印办公室人数 – 子列表数据的个数 len()

print(f’办公室{i}的人数是{len(office)},老师分别是:')

打印老师的名字

print() – 每个子列表里面的名字个数不一定 – 遍历 – 子列表

for name in office:

print(name)

i += 1

十、元组


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

t1 = (10, 20, 30)

print(t1)

print(type(t1))

1. 多个数据元组

t1 = (10, 20, 30)

print(type(t1))

2. 单个数据的元组

t2 = (10,)

print(type(t2))

3. 如果单个数据的元组不加逗号

t3 = (10)

print(type(t3)) # int

t4 = (‘aaa’)

print(type(t4)) # str

t5 = (‘aaa’,)

print(type(t5))

t1 = (‘aa’, ‘bb’, ‘cc’, ‘bb’)

1. 下标

print(t1[0])

2. index()

print(t1.index(‘bb’))

print(t1.index(‘bbb’))

3. count()

print(t1.count(‘aa’))

print(t1.count(‘aaa’))

4. len()

print(len(t1))

t1 = (‘aa’, ‘bb’, ‘cc’, ‘bb’)

t1[0] = ‘aaa’

t2 = (‘aa’, ‘bb’, [‘cc’, ‘dd’])

print(t2[2])

print(t2[2][0])

t2[2][0] = ‘TOM’

print(t2)

十一、字典介绍


在这里插入图片描述

在这里插入图片描述

1.生活中的字典

在这里插入图片描述

2.软件开发中的字典

在这里插入图片描述

创建字典

在这里插入图片描述

{} 键值对 各个键值对用逗号隔开

1. 有数据的字典: name的值TOM, age的值是20, gender的值是男

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

print(dict1)

print(type(dict1))

2. 创建空字典

dict2 = {}

print(type(dict2))

dict3 = dict()

print(type(dict3))

3.根据键访问值

在这里插入图片描述

在这里插入图片描述

十二、字典的常见操作


1.查看元素

在这里插入图片描述

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

1. [key]

print(dict1[‘name’]) # 返回对应的值(key存在)

print(dict1[‘names’])

2. 函数

2.1 get()

print(dict1.get(‘name’))

print(dict1.get(‘names’)) # 如果key不存在,返回None

print(dict1.get(‘names’, ‘Lily’))

2.2 keys() 查找字典中所有的key,返回可迭代对象

print(dict1.keys())

2.3 values() 查找字典中的所有的value,返回可迭代对象

print(dict1.values())

2.4 items() 查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典key对应的值

print(dict1.items())

2.修改元素

在这里插入图片描述

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

dict1[‘name’] = ‘Lily’

print(dict1)

dict1[‘id’] = 110

print(dict1)

3.添加元素

在这里插入图片描述

在这里插入图片描述

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

字典序列[key] = 值

id的值是110

dict1[‘id’] = 110

print(dict1)

dict1[‘name’] = ‘ROSE’

print(dict1)

4.删除元素

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

del 删除字典或指定的键值对

del(dict1)

print(dict1)

del dict1[‘name’]

del dict1[‘names’] # 报错

print(dict1)

clear()

dict1.clear()

print(dict1)

5.len()

在这里插入图片描述

6.keys

在这里插入图片描述

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

for key in dict1.keys():

print(key)

7.values

在这里插入图片描述

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

for value in dict1.values():

print(value)

8.items

在这里插入图片描述

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

for item in dict1.items():

print(item)

dict1 = {‘name’: ‘TOM’, ‘age’: 20, ‘gender’: ‘男’}

xx.items(): 返回可迭代对象,内部是元组,元组有2个数据

元组数据1是字典的key,元组数据2是字典的value

for key, value in dict1.items():

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值