当前位置: 首页 > article >正文

字符串/列表/元组/字典

1. 序列

在 python 中,序列是一组按照顺序排列的值。

python 中,存在三种内置序列:

字符串,元组,列表;

优点:支持索引,切片;

特征:第一个索引为0,指向左端;第一个索引为负数,指向右端;

2. 切片

切片:根据下标截取的对应序列的部分内容;

使用:变量名 [ start : end : step ],其使用为 step 不写默认为 1, 不可以为 0;

# 切片操作
c  = "hello world"
print(c)# 输出完整数据
print(c[::-1])# dlrow olleh,倒序输出
print(c[0:3])# 下标为 0,1,2 的部分
print(c[:3])# 也可以这样写
print(c[7:])# 下标为 7,8,9,10 的部分
print(c[7:11])# 也可以这样写
3. 字符串
3.1 字符串使用
# 字符串也有下标,取出部分字符串,可以使用对应下标
a = 'python'
for b in a:
    print(b,end='')
 3.2 字符串常用方法

# 三种内置序列:字符串,元组,列表
# 字符串也有下标,取出部分字符串,可以使用对应下标
a = 'pythoN'
for b in a:
    print(b + " ",end = '')
print(" ")

# 字符串常用方法
# 首字母变大写
print(a.capitalize())# Python
b = "   Hello   "
print(b)

# 删除左边空格
print(b.lstrip())

# 删除右边空格
print(b.rstrip())

# 查看内存地址
print(id(b))#2628669065264
print(id(a))#2628665927856

# 查找目标是否在“字符串”中
print(a.find("o"))# 4,返回位置
print(a.find("z"))#-1,找不到返回 -1
    #index 函数也可以用来查找
print(a.index("o"))# 4,返回位置
#print(a.index("z"))# 找不到会报异常,不会返回 -1

print(a.startswith('p'))# True,是否以某字母开头
print(a.endswith("n"))# False ,是否以某字母结尾

# 转换小写
print(a.lower())# python
# 转换大写
print(a.upper())# PYTHON
4. 列表

list 是一种有序的数据集合,可以随时添加或删除其中的元素;

特点:

1. 支持增删查改

2. 列表中的数据是可以改变的(数据项可以改变,内存地址不会改变)

3. 用 [ ] 表示列表类型,数据项之间用逗号分隔,数据项可以是任何类型的数据 

4. 支持索引切片操作

# list:基础操作
li = [ ]# 空列表
li = [1,2,3,"吃饭",'c',"python"]
print(len(li))# 列表长度 6
print(type(li))# <class 'list'>

 4.1 查找
# 查找
    # 索引与切片相关操做
print(li)# [1, 2, 3, '吃饭', 'c', 'python']
print(li[0])# 1
print(li[:4])# [1, 2, 3, '吃饭']
print(li[0:4])# [1, 2, 3, '吃饭']
print(li[4:])# ['c', 'python']
print(li[4:6])# ['c', 'python']
print(li[::-1])# 倒序:['python', 'c', '吃饭', 3, 2, 1]
    # index 查找
print(li.index('c',0,10))# 返回下标:从下标为 0 和 10 的范围查找'C',返回下标
print("========================================================")
    # 复制
print(li * 2)#复制两次 [1, 2, 3, '吃饭', 'c', 'python', 1, 2, 3, '吃饭', 'c', 'python']
print("========================================================")
4.2 增加
# 增加
print("增加前:{}".format(li))
li.append("xxx")# append 方法只允许添加一个参数
print("增加后:{}".format(li))
li.append(['aaa','b','c'])
print("增加后:{}".format(li))
    #插入
li.insert(2,100)# 索引为 2 的位置插入 100
print("增加后:{}".format(li))
s = list(range(10))# 强制转换
print(s)
    # extend 同时添加多个
li.extend([11,33,55])
print("增加后:{}".format(li))
print("========================================================")
 4.3 修改
# 修改
print("修改之前:{}".format(li))
li[0] = 3.1415926
print("修改之后:{}".format(li))
print("========================================================")
4.4 删除
# 删除
print("删除之前:{}".format(li))
del li[0] # 删除
print("删除之后:{}".format(li))
del li[0:3]# 批量删除
print("删除之后:{}".format(li))
li.remove(11)# 删除指定元素,参数为具体的对象
print("删除之后:{}".format(li))
li.pop(1)# 删除指定项,参数为索引值
print("删除之后:{}".format(li))
 5. 元组

一种不可变的序列,创建之后不能做任何的修改;

特点:

        1. 不可变

        2. 可以是任何类型

        3. 支持切片操作

        4. 用( )创建元组类型,数据项用逗号分开

        5. 当元组中只有一个元素时,要加上逗号,不然解释器会当作整型处理

 5.1 元组创建
# 元组,不可修改
tuple = ("apple",123,'a',[11,22,'12'])
print(type(tuple))# <class 'tuple'>
print(tuple)# ('apple', 123, 'a', [11, 22, '12'])
5.2 元组查询

# 元组的查询
tuple_b = (1,3,5,'a',"apple",3.14)
for a in tuple_b:
    print(a,end = ' ')# apple 123 a [11, 22, '12']
print(" ")
print(tuple_b[2:4])# ('a', [11, 22, '12'])
    # 反转字符串
# print(tuple_b[::-1])#反转字符串:([11, 22, '12'], 'a', 123, 'apple')
print(tuple_b[::-2])# 反转,并每隔一个取
print(tuple_b[::-3])# 反转,并每隔两个取
print(tuple_b[-2:-1:])# ('apple',),结尾位置为负数,从左往右,apple是-2,3.14是-1,取一位
 5.3 修改元组中列表
print("===============================")
# 元组不能修改内容,但可以修改元组中的列表
tuple_c = (11,22,33,44,[1,2,3,4])
print(type(tuple_c[4]))# <class 'list'>
tuple_c[4][1] = 11
print(tuple_c)# (11, 22, 33, 44, [1, 11, 3, 4])
5.4 单个元素加逗号
# 元组,单个数据项必须加逗号
tuple_e = (2)
print(type(tuple_e))# <class 'int'>
print(tuple_e)#元素本身: 2
tuple_e = (2,)
print(type(tuple_e))# <class 'tuple'>
print(tuple_e)#元组: (2,)
5.5 方法
# 方法
    # count 方法:统计元素个数:
tuple_f = (11,22,11,22,33,44,55,)
print(tuple_f.count(11))# 2
    # index 方法,返回对象下标
print(tuple_f.index(44))#下标为: 5
 6. 字典

Pythion 中一种重要的数据类型

可以存储任意对象

键值对 { ‘ key ’ : ' value ' } 的形式创建

字典的键不能重复,值可以重复

可进行增删查改操作

6.1 创建字典
#创建字典
dict = {'a':'吕小布','b':'刘备备','c':'张飞飞'}
#{'a': '吕小布', 'b': '刘备备', 'c': '张飞飞'}
print(dict)
6.2 添加数据项
# 添加字典数据
dict['w'] = "王昭君"
dict['l'] = '吕小布'
print(dict)
#{'a': '吕小布', 'b': '刘备备', 'c': '张飞飞', 'w': '王昭君', 'l': '吕小布'}
# 更新数据也可以
dict.update({"啥":"你说啥"})
print(dict)
    # {'a': '吕小布', 'b': '刘备备', 'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}
 6.3 查找数据项
# 查找
# 数据项长度
print(len(dict))# 5
# 通过键获取对应的值
print(dict['a'])# 吕小布
# 修改键对应的值
dict['a'] = "吕大布"
print(dict['a'])# 吕大布
# 获取所有的键
print(dict.keys())
    # dict_keys(['a', 'b', 'c', 'w', 'l'])
# 获取所有的值
print(dict.values())
    # dict_values(['吕大布', '刘备备', '张飞飞', '王昭君', '吕小布'])
# 获取所有的键和值
print(dict.items())
    # dict_items([('a', '吕大布'), ('b', '刘备备'), ('c', '张飞飞'), ('w', '王昭君'), ('l', '吕小布')])
for key,value in dict.items():
    print("%s==%s"%(key,value))
    # a==吕大布
    # b==刘备备
    # c==张飞飞
    # w==王昭君
    # l==吕小布
6.4 删除数据项
# 删除操作
del dict['a']# 通过指定键删除
print(dict)
    # {'b': '刘备备', 'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}
dict.pop('b')# 通过指定键删除
print(dict)
    # {'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}
6.5 数据项排序
# 排序操作
print(dict)
#[('c', '张飞飞'), ('l', '吕小布'), ('w', '王昭君'), ('啥', '你说啥')]
    # 按照键排序
print(sorted(dict.items(),key = lambda d:d[0]))
# 结果按照字母顺序打印输出{'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}
    # 按照值排序
print(sorted(dict.items(),key = lambda d:d[1]))
# [('啥', '你说啥'), ('l', '吕小布'), ('c', '张飞飞'), ('w', '王昭君')]

以上代码的汇总:

# 字典
#创建字典
dict = {'a':'吕小布','b':'刘备备','c':'张飞飞'}
#{'a': '吕小布', 'b': '刘备备', 'c': '张飞飞'}
print(dict)

# 添加字典数据
dict['w'] = "王昭君"
dict['l'] = '吕小布'
print(dict)
#{'a': '吕小布', 'b': '刘备备', 'c': '张飞飞', 'w': '王昭君', 'l': '吕小布'}
# 更新数据也可以
dict.update({"啥":"你说啥"})
print(dict)
    # {'a': '吕小布', 'b': '刘备备', 'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}

# 查找
# 数据项长度
print(len(dict))# 5
# 通过键获取对应的值
print(dict['a'])# 吕小布
# 修改键对应的值
dict['a'] = "吕大布"
print(dict['a'])# 吕大布
# 获取所有的键
print(dict.keys())
    # dict_keys(['a', 'b', 'c', 'w', 'l'])
# 获取所有的值
print(dict.values())
    # dict_values(['吕大布', '刘备备', '张飞飞', '王昭君', '吕小布'])
# 获取所有的键和值
print(dict.items())
    # dict_items([('a', '吕大布'), ('b', '刘备备'), ('c', '张飞飞'), ('w', '王昭君'), ('l', '吕小布')])
for key,value in dict.items():
    print("%s==%s"%(key,value))
    # a==吕大布
    # b==刘备备
    # c==张飞飞
    # w==王昭君
    # l==吕小布

# 删除操作
del dict['a']# 通过指定键删除
print(dict)
    # {'b': '刘备备', 'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}
dict.pop('b')# 通过指定键删除
print(dict)
    # {'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}

# 排序操作
print(dict)
#[('c', '张飞飞'), ('l', '吕小布'), ('w', '王昭君'), ('啥', '你说啥')]
    # 按照键排序
print(sorted(dict.items(),key = lambda d:d[0]))
# 结果按照字母顺序打印输出{'c': '张飞飞', 'w': '王昭君', 'l': '吕小布', '啥': '你说啥'}
    # 按照值排序
print(sorted(dict.items(),key = lambda d:d[1]))
# [('啥', '你说啥'), ('l', '吕小布'), ('c', '张飞飞'), ('w', '王昭君')]
7. 公用方法

 7.1 合并( + )
# 合并
    # 字符串
strA = " 三个小和尚,"
strB = "一个老和尚"
print(strA+strB)#  三个小和尚,一个老和尚
    # 列表
listA = [11,22,33]
listB = [44,55,66]
print(listA+listB)# [11, 22, 33, 44, 55, 66]
    # 元组
tupleA = ('ha',)
tupleB = ("he",)
print(tupleA+tupleB)# ('ha', 'he')
 7.2 复制( * )
# 复制
strC = "wahaha"
listC = ["wa hou"]
tupleC = ('neng',)
print(strC * 2)# wahahawahaha
print(listC * 2)# ['wa hou', 'wa hou']
print(tupleC * 2)# ('neng', 'neng')
7.3 判断元素是否存在( in )
# 判断,结果为布尔值
strD = "aaaaaa"
print('a' in strD)# True
listD = [11,22,33,44]
print(11 in listD)# True
tupleD = (11,)
print(11 in tupleD)# True
dictD = {"a":11,'ab':"2222"}# 字典只能根据键来判断
print('a' in dictD)# True
8. 总结


http://www.kler.cn/a/547736.html

相关文章:

  • 深度解析 Python 列表推导式与生成器表达式:原理、用法与优劣比较
  • 一个根据输入内容过滤下拉选的组件
  • 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 , 基于 openEuler 构建 LVS-DR 群集。
  • 使用Python爬虫实时监控行业新闻案例
  • 探寻氧化铈:催化剂领域的璀璨明珠-京煌科技
  • 在nodejs中使用RabbitMQ(五)死信队列,延迟队列
  • 【DeepSeek】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库
  • 类型通配符上限
  • Brian Kernighan 算法
  • HTML,API,RestFul API基础
  • 科普:“表格式 ”与“ 存储格式”
  • 【环境配置】Ubuntu 22.04 C++ header file not found using Vim with YouCompleteMe
  • Redis 设置密码无效问题解决
  • c++--变量内存分配
  • 【开源项目】Excalidraw手绘风格白板(保姆级)教程
  • 如何学BI大数据
  • Html、Markdown的信息提取
  • LabVIEW 中 dotnet.llb 库功能
  • 05-服务保护和分布式事务(Sentinel、Seata)
  • Linux文件管理:硬链接与软链接