Python(二)str、list、tuple、dict、set

string

py 复制代码
name = 'abcdef'

print(name[0])                                               #a
# 切片:取部分数据
print(name[0:3]) # 取 下标为0,1,2的字符                       abc
print(name[2:]) # 取 下标为2开始到最后的字符                  cdef
print(name[1:-1]) # 取 下标为1开始 到 最后第2个  之间的字符   bcde

查找:

  • find(): 字符串序列.find(子串, 开始位置下标, 结束位置下标),有则返回索引,没有则返回-1
  • index():检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。
py 复制代码
sentence = "I am quite pleased to hear that you are learning python to write program"
print(sentence.find('to'))  # 19
print(sentence.find('to', 30, 60))  # 56  从某个区域内查找
print(sentence.find('tos'))  # -1

print(sentence.index('to'))  # 19
print(sentence.index('to', 30, 60))  # 56
print(sentence.index('tos'))  # 报错

修改:

  • replace(): 字符串序列.replace(旧子串, 新子串, 替换次数),如果省略或设为-1,则替换所有匹配的子串。
  • split(): 字符串序列.split(分割字符, num)
py 复制代码
sentence = "I am quite pleased to hear that you are learning python  to write program"

# 结果:I am quite pleased go hear that you are learning python  go write program
print(sentence.replace('to', 'go'))
# 结果:I am quite pleased go hear that you are learning python  go write program
print(sentence.replace('to', 'go', 10))
# 结果:I am quite pleased to hear that you are learning python  to write program
print(sentence)


# 结果:['I am quite pleased ', ' hear that you are learning python  ', ' write program']
print(sentence.split('to'))
# 结果:['I am quite pleased ', ' hear that you are learning python  to write program']
print(sentence.split('to', 1))
# 结果:['I', 'am', 'quite', 'pleased', 'to', 'hear', 'that', 'you', 'are', 'learning', 'python', '', 'to', 'write', 'program']
print(sentence.split(' '))
# 结果:['I', 'am', 'quite pleased to hear that you are learning python  to write program']
print(sentence.split(' ', 2))

其他API:

  • capitalize:第一个字符大写
  • title:每个单词首字母大写
  • startswith:检查是否以传入的字符串开头
  • endswith:检查是否以传入的字符串开头结尾
  • lower:所有大写转为小写
  • upper:所有小写转为大写
  • strip:删除两端空格(lstrip、rstrip)
  • isspace:判断只包含空格
  • isalnum:判断只包含字母或数字
  • isdigit:判断只包含数字
  • isalpha:判断只包含字母

list

  • 有序的集合
  • 可重复
  • 可变
  • 可以存储任何类型的数据
  • 列表是序列结构,可以进行序列结构的基本操作:索引、切片、加、乘、检查成员。
py 复制代码
# 定义list
fruitList = ['orange','apple','banana','grape']
# 获取个数
len(fruitList)
# 查找指定元素是否存在
'orange' in fruitList
# 查找索引
fruitList.index('apple')
# 查找个数
fruitList.count('apple')
py 复制代码
# 访问
fruitList[0]
# 当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(fruitList ) - 1
# 访问最后一个还可以使用-1
fruitList[-1]
fruitList[-2]
py 复制代码
# 末尾添加 无返回值
fruitList.append('Adam')
# 指定位置添加 无返回值
fruitList.insert(1, 'Jack')
输出:['orange', 'Jack', 'apple', 'banana', 'grape']
# 删除末尾元素,返回值为被删除的元素
fruitList.pop()
# 删除指定位置元素,返回值为被删除的元素
fruitList.pop(1)
# 替换某个元素 直接给索引赋值
fruitList[1] = 'Sarah'
# 删除索引
del movie_name[2]
# 删除元素
fruitList.remove('Jack')

tuple

  • 有序列表
  • 不可变
  • 可重复
  • 可以是不同的数据类型
  • 只有1个元素的tuple定义时必须加一个逗号,来消除歧义
  • 获取数据和list相同,没有删除和添加方法
  • 定义一个空的tuple,可以写成()
py 复制代码
fruitList = ('orange','apple','banana','grape','grape')

可变:

字典

  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的
  • 字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
py 复制代码
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}

print(info['name'])
print(info['address'])
# 访问不存在的键会报错

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

py 复制代码
>>> age = info.get('age')
>>> age #'age'键不存在,所以age为None
>>> type(age)
<type 'NoneType'>
>>> age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18
>>> age
18
  • 查看
    使用get获取元素,获取不存在的不会报异常
py 复制代码
 info = {'name':'吴彦祖','age':18}
 print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常
  • 修改
py 复制代码
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
new_id = input('请输入新的id')
info['id'] = int(new_id)
print('修改之后的id为%d:' % info['id'])
  • 添加
    如果有就修改 如果没有就新增键值对
py 复制代码
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
info['newLable'] = 'hi'
  • 删除
py 复制代码
# 删除元素
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
del info['name']
# 删除整个字段
del info
# 清空整个字典
info.clear()
  • 其他操作
py 复制代码
# get(key, 默认值)  如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。
info = {'name': 'orange', 'id': 100, 'sex': '1', 'address': '地址'}
info.get('name')
# keys() 显示左右key值
# values() 显示所有的value值
# items() 显示所有的键值对(key-value形式)

set

  • 无重复
  • 无序
  • 是一组key的集合,但不存储value
py 复制代码
s = {1, 2, 3}
# 新增
s.add(4)
# 删除
s.remove(4)
相关推荐
千寻girling2 小时前
一份不可多得的 《 Django 》 零基础入门教程
后端·python·面试
奇迹_h2 小时前
打造你的HTML5打地鼠游戏:零基础入门实践
前端
SuperEugene2 小时前
Vue生态精选篇:Element Plus 的“企业后台常用组件”用法扫盲
前端·vue.js·面试
千寻girling2 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
Neptune12 小时前
JavaScript回归基本功之---类型判断--typeof篇
前端·javascript·面试
贾铭2 小时前
如何实现一个网页版的剪映(三)使用fabric.js绘制时间轴
前端·后端
子兮曰3 小时前
后端字段又改了?我撸了一个 BFF 数据适配器,从此再也不怕接口“屎山”!
前端·javascript·架构
万少5 小时前
使用Trae轻松安装openclaw的教程-附带免费token
前端·openai·ai编程
颜酱5 小时前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
浪浪山_大橙子5 小时前
OpenClaw 十分钟快速,安装与接入完全指南 - 推荐使用trae 官方 skills 安装
前端·人工智能