PythonDay2Base
PythonDay2Base
前文见上一篇文章
数据类型详解
字符串 str 补充
startswith 判断字符串是否以某个小字符串开头
s1 = "shujia数加科技学习study"
b = s1.startswith('sh')
print(b) # True
endswith 判断字符串是否以某个小字符串结尾
s1 = "shujia数加科技学习study"
# b = s1.startswith('sh')
# print(b) # True
b = s1.endswith('wdy')
print(b) # False
split 指定分隔符从左向右切进行切分
# 扩展知识:.csv后缀格式的文件,若以记事本打开的话,
# 列和列之间,默认使用的是英文逗号分割的
# 1001,张三,18,男,33期
s1 = "1001,张三,18,男,33期"
l1 = s1.split(',')
print(l1)
默认是所有分隔符都会切分,但是可以设置maxsplit参数值,指定切割的次数
s1 = "1001,张三,18,男,33期"
l1 = s1.split(',', maxsplit=2)
print(l1) # ['1001', '张三', '18,男,33期']
rsplit 指定分隔符从右向左切进行切分
s1 = "1001,张三,18,男,33期"
# l1 = s1.split(',', maxsplit=2)
# print(l1)
# ['1001', '张三', '18,男,33期']
l1 = s1.rsplit(',', maxsplit=1)
print(l1)
join 以调用该方法的字符串进行拼接
# 1001,张三,18,男,33期
s1 = "1001,张三,18,男,33期"
l1 = s1.split(',')
print(l1) # 1001|张三|18|男|33期 print("---------------------")
s2 = '|'.join(l1)
print(s2)
replace 指定新字符串替换旧字符串
s1 = '今天我在数加科技学习,今天学习了大数据相关的知识,在数加每一天都很充实!'
s2 = s1.replace('数加', 'shujia')
print(f"s1:{s1}")
print(f"s2:{s2}")
strip() 去除字符串两边的空白字符, 注意不会去除字符串中间本身的空白字符
s1 = ' hello world '
s2 = s1.strip()
print(f"s1:{s1}")
# s1: hello world
print(f"s2:{s2}")
# s2:hello world
rstrip() 去除字符串右边的空白字符
ltrip() 去除字符串左边边的空白字符
整数 int
所有的整数都是int类型,包括负数
浮点数 float
所有的小数都是float类型,包括负数
布尔 bool
两种值,True和False
列表list
用于存储多种元素的容器,列表中的元素具有有序【存储和取出的顺序一致】且可以发生重复的特
点
同样具备索引的概念,同一个列表中的元素类型可以是不一样的
举例:[10, 12.23, '数加', True, [11,22,33,44], 'shujia']
公共功能
长度功能
# 如何创建一个空列表?
# 方式1:直接使用[]
list1 = []
# 方式2:使用内置函数list()
list1 = list()
# 使用len()函数获取元素的个数
list1 = [10, 12.23, '数加', True, [11,22,33,44], 'shujia']
print(f"list1列表中的元素个数为:{len(list1)}")
# 6
# 列表本身就是一个可以迭代的序列,所以直接使用for循环获取元素
list1 = [10, 12.23, '数加', True, [11,22,33,44], 'shujia']
for i in list1:
print(i)
索引功能
# 0 1 2 3 4 5
list1 = [11, 22, 33, 44, 55, 66]
# -6 -5 -4 -3 -2 -1
# 获取44这个元素
print(list1[3])
切片功能
# 0 1 2 3 4 5
list1 = [11, 22, 33, 44, 55, 66]
# -6 -5 -4 -3 -2 -1
print(list1[2:5])
print(list1, type(list1))
# 使用负数索引获取33,44,55
print(list1[-4:-1])
# [33, 44, 55]
# 按顺序取55,44,33
print(list1[-2:-5:-1])
# [55, 44, 33]
in 判断一个元素是否在列表内出现
list1 = [11,22,33,44,55,66,22,11,55,77,22,11,22]
if 77 in list1:
print("77出现在列表中")
else:
print("未出现")
独有功能
在列表自身基础上做修改
增加元素
追加 append
# 创建一个空列表
list1 = []
# list1 =list()
list1.append(100)
list1.append('hello')
list1.append('world')
list1.append(True)
list1.append('hello')
list1.append('flink')
print(f"list1:{list1}")
# list1:[100, 'hello', 'world', True, 'hello', 'flink']
插入 insert
# list1:[100, 'hello', 'world', True, 'hello', 'flink']
print(f"list1:{list1}")
print("--------------------")
list1.insert( 2,'黄沪生')
print(f"list1:{list1}")
删除元素
方式1:调用remove()函数 在已知要删除元素的值
list1 = [11, 22, 33, 44, 55, 66]
list1.remove(44)
# list1.remove(100)
# 报错 print(f"list1: {list1}")
print('hello world')
注意:使用remove需要确保要删除的元素在列表中,否则报错,程序终止运行
方式2:调用pop()函数 根据索引删除元素,返回被删除元素的值
list1 = [11, 22, 33, 44, 55, 66]
s = list1.pop(3)
print(f"list1: {list1}")
print(s)
print('hello world')
方式3:使用python内置关键字 del
list1 = [11, 22, 33, 44, 55, 66]
del list1[3]
print(f"list1: {list1}")
修改元素 直接通过索引覆盖原有的值,起到修改的效果
list1 = [11, 22, 33, 44, 55, 66]
list1[3] = 100
print(f"list1: {list1}")
反转功能
list1 = [11, 22, 33, 44, 55, 66]
print(f"反转前:{list1}")
list1.reverse()
print(f"反转后:{list1}")
练习:判断某一个字符串是否是对称字符串
# aba helloolleh hello owo
str1 = input("请输入一个字符串:")
list2 = list(str1) # 字符串转列表,每个字符作为列表中的元素
list2.reverse() # 将列表中的元素进行反转
str2 = ''.join(list2) # 将元素以指定分隔符拼接得到字符串
if str2==str1:
print("该字符串是一个对称字符串!")
else:
print("不是对称字符串!")
拷贝功能
浅拷贝 python列表中的copy()属于浅拷贝
拷贝单个元素列表的形式
list1 = [11, 22, 33, 44, 55, 66]
list2 = list1.copy()
print(f"list1:{list1}")
print(f"list2:{list2}")
print("-----------------------------")
list1[3] = 100
print(f"list1:{list1}")
print(f"list2:{list2}")
拷贝复杂元素列表的形式
list1 = [11, 22, 33, [100, 200, 300], 55, 66]
list2 = list1.copy()
print(f"list1:{list1}")
print(f"list2:{list2}")
print("-----------------------------")
list1[3][1] = 'hello'
print(f"list1:{list1}")
print(f"list2:{list2}")
深拷贝
旨在拷贝列表内嵌套的所有项目 当目标列表改变时 复制列表不改变
count() 统计列表中某个元素的个数
list1 = [11,22,33,44,55,66,22,11,55,77,22,11,22]
res1 = list1.count(11)
print(res1)
元组 tuple
元素有序,也可以发生重复,但是元素中的元素,一旦确定了,就不能更改【无法完成增删改】
创建元组
创建一个空元组
# 创建一个空元组
# t1 = ()
t1 = tuple()
print(t1, type(t1))
创建一个非空元组
创建一个只有1个元素的元组 , 元素的后面要有一个逗号,若不加,等同于一个元素直接
赋值
t1 = (11,)
print(t1, type(t1))
创建一个元素个数大于等于2的元组 最后一个元素后面加逗号或者不加都行
# t2 = (11,22,33,)
t2 = (11,22,33)
print(t2, type(t2))
公共功能
长度功能 获取的是元素的个数
t2 = (11,22,33,)
print(len(t2))
索引功能
t2 = (11,22,33,)
print(t2[1])
# 遍历元组
t1 = (11,22,33,44,55,66)
for i in t1:
print(i)
切片功能
t1 = (11,22,33,44,55,66)
print(t1[2:5]) # (33, 44, 55)
in 包含
t1 = (11,22,33,44,55,66)
if 44 in t1:
print("yes")
else:
print("no")
独有功能
count()
index()
通常情况下,开发中我们将元组中存储固定的链接值,比如与数据库的连接信息,重要的路径信息。
字典dict
特点:
- 元素是由键值对构成,一个键值对看作一个元素
- 键是唯一的,不允许重复出现
- 值可以发生重复的
- 元素键和值的类型可以是不一样的
- 一个字典中的元素之间是有序的【python3.6版本之后】,【python3.6之前是无序的】
如何创建一个字典?
# 创建一个空字典
d1 = dict()
print(d1, type(d1))
d2 = {}
print(d2, type(d2))
公共功能
长度功能 获取的是键值对的个数
d1 = {'name':'张三', 'age':18, 'likes':['打游戏','看电影','跑步'], 'dog':{'name':'哮 天犬','age':3}} print(len(d1)) # 4
索引功能
在字典类型里,索引指的是键,键是唯一,可以通过键获取对应的值
d1 = {'name':'张三', 'age':18, 'likes':['打游戏','看电影','跑步'], 'dog':{'name':'哮 天犬','age':3}} print(d1['age']) # 18
print(d1['likes'][1]) # 看电影
无切片功能
in 包含功能 判断的是键是否存在于字典中
if 'name' in d1:
print('存在这个键') # 存在!!
else:
print("不存在")
# -----------------------------------------
if 18 in d1:
print('存在这个键')
else:
print("不存在") # 不存在!!
遍历
先获取所有的键,遍历得到每一个键,根据键获取每一个值
d1 = {'name': '张三', 'age': 18, 'gender': '男', 'clazz': '33期'}
# 获取所有的键
keys = list(d1.keys())
for key in keys: # 根据键获取对应的值
value = d1.get(key)
print(f"{key}-{value}")
直接获取所有的键值对,遍历得到每一个键值对,得到每一个键和每一个值
key_values = list(d1.items())
# print(key_values, type(key_values))
for key_value in key_values:
key = key_value[0]
value = key_value[1]
print(f"{key}={value}")
独有功能
- keys() 获取字典中所有的键
- get(键) 根据键获取值
- items() 获取所有的键值对
- clear() 清空字典中所有的元素
- pop 根据键从字典中移除一个键值对,返回一个值
集合 set
元素唯一且无序
set集合创建的方式
创建空的集合
s1 = set()
创建有元素的集合
s2 = {11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11}
公共功能
没有索引的概念
没有切片的功能
长度功能
s2 = {11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11}
# print(s2, type(s2))
print(s2)
print(len(s2))
in 包含
s2 = {11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11}
# print(s2, type(s2))
# print(s2)
# print(len(s2))
if 22 in s2:
print("yes")
else:
print("no")
练习:去重列表中的重复元素
方法1:借助一个空列表
list1= [11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11]
# print(list1)
list2 = []
for i in list1:
if i not in list2:
list2.append(i)
print(f"list2:{list2}")
方式2:借助转set集合进行去重
list1= [11, 22, 33, 45, 6, 1, 1, 22, 33, 45, 11]
list1 = list(set(list1))
print(list1)
独有功能
求差集
s1 = {11,22,33,44}
s2 = {22,33,55,66}
# res1 = s1 - s2 # 求差集
res1 = s1.difference(s2)
print(res1)
求并集
s1 = {11,22,33,44}
s2 = {22,33,55,66}
res1 = s1.union(s2)
print(res1)
求交集
s1 = {11,22,33,44}
s2 = {22,33,55,66}
res1 = s1.intersection(s2)
print(res1)
添加元素add
s1 = {11,22,33,44}
s1.add('hello')
s1.add('world')
s1.add(14)
print(s1)
删除一个元素
res1 = s1.pop()
print(s1)
print(res1)
指定元素删除 remove()
若元素不存在 则报错
res1 = s1.remove(11)
print(s1)
print(res1)
指定元素删除 discard()
若元素不存在,不会报错
s1 = {11,22,33,44}
s1.discard(33)
print(s1)
随机推荐
- FALCON:打破界限,粗粒度标签的无监督细粒度类别推断,已开源| ICML'24
在许多实际应用中,相对于反映类别之间微妙差异的细粒度标签,我们更容易获取粗粒度标签.然而,现有方法无法利用粗标签以无监督的方式推断细粒度标签.为了填补这个空白,论文提出了FALCON,一种从粗粒度标记 ...
- 3. 无重复字符的最长子串 Golang实现
题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度. 注意区分子串和子序列. 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复 ...
- 掌握Docker:简化KES单机安装与管理的最佳实践
今天我们将继续深入探讨KES的单机安装,依然围绕Docker的使用展开.这一部分的内容将涵盖一些常见的陷阱以及在遇到问题时如何进行有效的反馈和解决.首先,我们需要找到官方的安装教程,确保以官方指南为主 ...
- USB眼图常识
最近一段时间,项目需求,需要对USB眼图进行摸底测试.测试过程很简单,然而debug之路却很不简单.不简单往往也就意味着带来了不少收获. 示波器跨接在接收滤波器的输出端,调整示波器扫描周期,使示波器水 ...
- Linux:/proc/meminfo参数详细解释
Linux:/proc/meminfo参数详细解释 一.Linux内存总览图 二.meminfo参数的详细介绍 /proc/meminfo是了解Linux系统内存使用状况的主要接口,我们最常用的&qu ...
- 牛逼!5K star! 推荐一款集监控和埋点于一体的前端性能监控工具!开源、简单易用、功能强大!
在互联网的快速发展下,网站已成为企业和个人展示信息.提供服务的重要平台.然而,随之而来的网站性能问题也日益凸显,如加载速度慢.频繁出错.服务器故障.数据异常.网络攻击等.如何确保用户能够快速稳定地访问 ...
- 云原生爱好者周刊:使用 Cilium 和 Grafana 实现无侵入可观测性
开源项目推荐 Cilium Grafana Observability Demo 这个项目由 Cilium 母公司 Isovalent 开源,提供了一个 Demo,使用 Cilium.OpenTele ...
- 自学PHP笔记(一) PHP语法
本文转发来自:https://blog.csdn.net/KH_FC/article/details/115407577 PHP基本语法 php使用一对特殊的标记包含php代码,与HTML代码混在一起 ...
- IKAnalyzer分词工具的spring boot项目整合代码版
简介 IK Analyzer是什么呢,一个很轻量的中文分词工具,是基于java开发的轻量级的中文分词工具包.它是以开源项目Luence为主体的,结合词典分词和文法分析算法的中文分词组件.IK有很多版本 ...
- Vmware Workstation的虚拟机如何通过宿主机的无线网卡和外部通信
今天需要在我的笔记本w10电脑上安装一个linux虚拟机,苦于我的w10是家庭版,没有hyper-v功能,所以安装了 vmware的workstation的软件,然后创建了虚拟机,但是总是搞不定如何让 ...