IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python【第三天】序列、字典与集合 -> 正文阅读

[Python知识库]Python【第三天】序列、字典与集合

总体描述

序列:在Python中,序列就是一组按照顺序排列的值【数据集合】
在Python中 存在三种内置的序列类型:
字符串、列表、元组

字符串操作

优点:支持索引和切片操作
特征:第一个正索引为0,索引指向的是左端,第一个索引为负数,指向的是右端
切片:【高级特征】可以根据下标获取序列对象的任意[部分]数据
语法结构:[start : end : step]step默认为1,若切片越界,切片不会报异常
截取的内容不包括结束下标对应的数据
len(x) #字符串x的字符个数
capitalize() #首字母变大写
endswith/startswith() #是否 x结束/开始
find() #检测x是否在字符串中
isalnum() #判断是否是数字或者字母
isalpha() #判断是否是字母
isdigit() #判断是否是数字 ‘abc123’.isdigit()
islower() #判断是否是小写
join() #循环取出所有值用x去连接
lower/upper() #大小写转换
swapcase() #大写变小写,小写变大写
lstrip/rstrip/strip #移除左/右/两侧空白
split() #切割字符串
title() #把每个单词的首字母变成大写
replace(old,new,count=None) #old:被换字符串,new:替换字符串,count:换多少个。无count表示全部替换
count() #统计出现的次数

# Test = 'Python'
# print(type(Test))
# print("获取第一个字符串%s"%Test[0])
# print("获取第二个字符串%s"%Test[1])
# for item in Test:
#     print(item,end='')
Test = 'helloworld'
print("Test:%s"%Test)
print("Test的内存地址:%d"%id(Test))
print("Test首字母变大写为:%s"%Test.capitalize())  #首字母变大写
print("Test是否以H开始:%s"%Test.startswith(' '))  #是否 x开始
print("Test是否以!结束:%s"%Test.endswith('!'))  #是否 x结束
print("'o'在Test中的下标为:%s"%Test.find('o'))  #检测o在字符串第几位,返回下标值,如果没找到,返回-1
print("'o'在Test中的下标为:%s"%Test.index('o'))  #检测o在字符串第几位,返回下标值,如果没找到,报错
print("Test是否为数字或者字母:%s"%Test.isalnum())  #判断是否是数字或者字母
print("Test是否为字母:%s"%Test.isalpha())  #判断是否是字母
print("Test是否为数字:%s"%Test.isdigit())  #判断是否是数字
print("Test是否为小写:%s"%Test.islower())  #判断是否是小写
# print("循环取出Test所有值,用+连接:%s"%Test.join('+'))  #循环取出所有值用+去连接
print("Test转换为大写:%s"%Test.lower())  #转换为大写
print("Test转换为小写:%s"%Test.upper())  #转换为小写
print("Test大小写相互转换:%s"%Test.swapcase())  #大写变小写,小写变大写
print("移除Test左侧空白:%s"%Test.lstrip())  #移除左侧空白
print("移除Test右侧空白:%s"%Test.rstrip())  #移除右侧空白
print("移除Test两侧空白:%s"%Test.strip())  #移除两侧空白
print("以'o'切割Test:%s"%Test.split('o'))  #切割字符串
print("Test每个单词首字母变大写:%s"%Test.title())  #把每个单词的首字母变成大写
# print("将Test中'!'替换为'~':%s"%Test.replace('w','W',count=None))  #old:被换字符串,new:替换字符串,count:换多少个。无count表示全部替换
print("Test中'o'出现的次数:%s"%Test.count('o'))  #统计出现的次数
print("输出Test中第三个到第五个字符串:%s"%Test[3:6:1])  #输出Test中第三个到第五个字符串
print("输出Test倒序的字符串:%s"%Test[::-1])

列表操作

Python中非常重要的数据结构,也是一种有序的数据集合
特点:
1.支持增、删、改、查
2.列表中的数据是可以变化的【数据项是可以变化的,内存地址不会改变】
3.用[]表示列表类型,数据项之间用’,'分割,注:数据项可以是任何类型的数据
4.支持索引和切片来进行操作
len(x) #列表x的数据项个数
append() #在列表后追加元素
count() #统计元素出现的次数
extend() #扩展,相当于批量添加
index() #获取指定元素索引号
insert() #在指定位置插入
pop() #删除最后一个元素
remove() #移除左边找到的第一个元素
reverse() #反转列表
sort() #列表排序 reverse = True

li = []
li = [1,2,3,3,'你好']
print("长度:%d"%len(li))  #获取列表中对象的数据个数
print("类型:%s"%type(li))
print("内容:%s"%li)  #输出完整列表
print("输出下标为1的列表元素:%s"%li[1])  #输出下标为1的列表元素
print("输出第二项到第三项的列表元素:%s"%li[1:3])  #输出第二项到第三项元素
print("倒序输出li列表的数据项:%s"%li[::-1])  #倒序输出li列表的数据项
print("输出三次列表中的数据项:%s"%(li*3))  #输出三次列表中的数据项[复制]
print("在Test追加元素'7':%s"%li.append(789))  #在列表后追加元素
print(li)
print("统计'3'在Test中出现的次数:%s"%li.count(3))  #统计元素出现的次数
print(li)
print("扩展Test:%s"%li.extend([456,789,369]))  #扩展,相当于批量添加
print(li)
print("在Test中,获取'2'的索引号:%s"%li.index(2))  #获取指定元素索引号
# index(x,start,end):从列表下标为start到end查找数据项为x的下标值
print(li)
print("在Test中3的位置插入数据项'99':%s"%li.insert(4,99))  #在位置4插入99
print(li)
li.pop()  #pop(x):其中x为数据项下标,可移除,默认为最后一个元素
print("删除Test中最后一个元素的结果:%s"%li)
li.pop()
print("删除Test中最后一个元素的结果:%s"%li)
li.pop()
print("删除Test中最后一个元素的结果:%s"%li)
li.pop()
print("删除Test中最后一个元素的结果:%s"%li)
li.pop()
print("删除Test中最后一个元素的结果:%s"%li)
print("在Test中移除左边找到的第一个元素:%s"%li.remove(3))  #移除自左边找到的第一个元素3
print(li)
print("反转Test列表:%s"%li.reverse())  #反转列表
print(li)
print("对Test列表进行排序:%s"%li.sort())  #列表排序 reverse = True
print(li)

元组操作

是一种不可变的序列,在创建之后就不能做任何的修改
特点:
1.不可变
2.用()来创建元组类型,数据项用逗号来分隔
3.可以是任何类型
4.当元组中只有一个元素时,要加上逗号,不然解释器会当作整型来处理
5.同样可以支持切片操作

# 元组的创建 不能进行修改
tupleA = ()  #空元组
# print(id(tupleA))
tupleA = ('abcd',89,9.12,'peter',[11,22,33])
# print(id(tupleA))
# print(type(tupleA))
# print(tupleA)
# 元组的查询
# for item in tupleA:
#     print(item,end=' ')
#     pass
# print(tupleA[2])
# print(tupleA[2:4])
# print(tupleA[::-1])
# print(tupleA[::-2])
# print(tupleA[-3:-1:])  #不包括-1的元素
# print(type(tupleA[0]))
# tupleA[0] = '123'  #错误的
# tupleA[4][0] = 9999  #可以对元组中的列表类型的数据进行修改
# print(tupleA[4])
# print(type(tupleA[4]))
tupleB = (1)
print(tupleB)
print(type(tupleB))
tupleC = tuple(range(10))
print(tupleC)
print(type(tupleC))
tupleD = (1,)  #当元组中只有一个数据项时,必须在数据项后面加上逗号
print(tupleD)
print(type(tupleD))
tupleE = (1,2,3,4,5,6,3,2,5,4,3,1)
print(tupleE.count(3))  #统计3出现的次数

字典操作

Python中非常重要的数据结构,可以储存任意对象(由 键值对 组成的集合)。
字典以键值对的形式创建的{‘key’:‘value’}利用大括号包裹着。
字典中找某个元素时,是根据键、值字典的每个元素由2部分组成。键:值
通常使用键访问数据(效率高),和list一样,支持对数据的添加
访问值的安全方式get方法,在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值
注意:
1.字典的键(key)不能重复,值(value)可以重复
2.字典的键(key)只能是不可变类型,如数字、字符串、元组。
特点:
1.不是序列类型 没有下标的概念 是一个无序的键值集合,是内置的高级类型
2.用 {} 表示字典对象,每个键值对用逗号(,)分割
3.键 必须是不可变的类型【元组、字符串】 值可以是任意类型
4.每个键必定是唯一的,如果存在重复的键,后者会覆盖前者
常用方法:
1.修改元素:字典中的值是可以修改的,通过键找到对应值修改
2.新增元素:如果在使用 变量名[‘键’] = 数据 时,这个’键’在字典中,不存在,那么就会新增这个元素
3.删除元素:del 删除指定元素 clear 清空字典
4.统计个数:len() 可以查看字典中有几个键值对
5.获取键:keys:返回包含字典所有 key 值的 dict keys 对象,用 for 循环取出每一个 key 值
6.获取值:value:使用 values 返回一个包含所有值(value)的dict values 对象
7.获取键值对:返回一个包含所有(键、值)元组的列表 dict items 对象
8.删除指定键:pop(‘键’)删除指定键

# 如何创建字典
from collections import defaultdict


dictA = {'pro':'啥都好专业','school':'啥都好学校'}  #空字典
# print(id(dictA))
# print("目前字典长度为:%d"%len(dictA))
dictA['name'] = '大漂亮'
dictA['age'] = '24'
dictA['sex'] = '女'
# print("目前字典长度为:%d"%len(dictA))
# print(id(dictA))
# print(type(dictA))
print(dictA)  #用逗号分隔开
# print(dictA['name'])  #通过键('name')得到它的值('大漂亮')
# print(dictA['age'])  #通过键('age')得到它的值(24)
# print(dictA.get('name'))  #通过键('name')得到它的值('大漂亮')
# print(dictA.get('age'))  #通过键('age')得到它的值(24)
# print(dictA.get('sex'))  #通过键('sex')得到它的值('女')
# print(dictA.get('pro'))  #通过键('pro')得到它的值('啥都好专业')
# print(dictA.get('school'))  #通过键('school')得到它的值('啥都好学校')
# dictA['name'] = '大帅锅'
dictA.update({'name':'大帅锅'})  #若执行的键存在,则进行修改操作
dictA.update({'hight':'1.80'})  #若执行的键不存在,则进行添加操作
# print(dictA['name'])  #通过键('name')得到它的值('大漂亮')
#获取所有的键
# print(dictA.keys())
#获取所有的值
# print(dictA.values())
#获取所有键值对
# print(dictA.items())
# for item in dictA.items():
#     print(item)
# for key,value in dictA.items():
#     print('%s == %s'%(key,value))
#删除操作
# dictA.pop('hight')  
# print(dictA)
# del dictA['pro']
# print(dictA)
print(dictA)
#如何对字典进行排序
print(sorted(dictA.items(),key=lambda d:d[0]))  #按照key排序
print(sorted(dictA.items(),key=lambda d:d[1]))  #按照value排序 类型必须一样,否则不能排序

公用操作

合并操作 + :两个对象相加操作,会合并两个对象
适用于字符串、列表、元组
复制 * :对象自身按指定次数进行 + 操作
适用于字符串、列表、元组
判断元素是否存在 in :(返回值为bool类型)
判断指定元素是否存在于对象中
适用于字符串、列表、元组、字典

#公用操作 + * in

# 字符串
strA = '人生苦短'
strB = '啥也不是'
print(strA+strB)
print(strA*5)
print('生' in strA)
print('人' in strB)

#列表
listA = list(range(10))
listB = list(range(11,21))
print(listA+listB)
print(listA*2)
print(3 in listA)

#元组
tupleA = [1,2,3]
tupleB = [4,5,6]
print(tupleA+tupleB)
print(tupleA*3)
print(2 in tupleA)
print(2 in tupleB)

#字典
dictA = {'A':'a','B':'b'}
print('A' in dictA.keys())
print('A' in dictA.values())
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:02:42  更:2021-07-26 12:05:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:33:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计