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)
相关推荐
阡之尘埃2 分钟前
Python数据分析案例73——基于多种异常值监测算法探查内幕交易信息
人工智能·python·机器学习·数据分析·异常检测·无监督学习
小墨宝22 分钟前
js 生成pdf 并上传文件
前端·javascript·pdf
雾月5532 分钟前
LeetCode 1292 元素和小于等于阈值的正方形的最大边长
java·数据结构·算法·leetcode·职场和发展
HED38 分钟前
用扣子快速手撸人生中第一个AI智能应用!
前端·人工智能
DN金猿42 分钟前
使用npm install或cnpm install报错解决
前端·npm·node.js
丘山子42 分钟前
一些鲜为人知的 IP 地址怪异写法
前端·后端·tcp/ip
蓝莓味柯基1 小时前
Python3:文件操作
python
志存高远661 小时前
Kotlin 的 suspend 关键字
前端
www_pp_1 小时前
# 构建词汇表:自然语言处理中的关键步骤
前端·javascript·自然语言处理·easyui
xiaoh_71 小时前
解决视频处理中的 HEVC 解码错误:Could not find ref with POC xxx【已解决】
python·ffmpeg·音视频