python学习——【第四弹】
前言
上一篇文章 python学习——【第三弹】 中学习了python中的流程控制语句,这篇文章我们接着学习python中的序列。先给大家介绍不可变序列 字符串
和可变序列 列表
,下一篇文章接着补充元组,集合和字典。
序列
指的是一块可以存放多个值的连续内存空间,这些值按一定的顺序排列,可以通过每个值所在的位置的编号,也就是索引
来访问他们。
python中的序列类型
包括:字符串(string)、列表(list)、元组(tuple)、集合(set),还支持一种映射数据类型:字典(dictionary)。序列的基础操作一般有:增加,删除,修改,查询。
python中的序列又分为可变序列和不可变序列:
可变序列
列表,集合以及字典,可变序列的数据结构是可以进行查看的,并且可以对其进行一些修改;操作后id(内存地址)不改变,不会开辟新的内存地址;
以列表为例:
不可变序列
字符串,元组,数值,只允许查看它们的值,当对不可变序列进行修改操作时,它会开辟一块新的内存地址,从而id发生变化。
以字符串为例:
序列操作
1:索引
索引
即为序列的下标
,通过下标来查询或取出序列中的元素。
strs='人生如戏,全是演技'
zifu1=strs[3]
zifu2=strs[-3]
zifu3=strs[10]
print('第四个字是:',zifu1)# 戏 索引为大于等于0的数,从字符串的左边向右边开始查询,从索引为0开始
print('倒数第三个字是:',zifu2)#是 索引为小于0的数,从字符串的右边向左边开始查询,从索引为-1开始
print('超出字符串的索引范围:',zifu3) #IndexError: string index out of range
2:切片
python中的序列都可以使用切片操作:
切片操作:切片的结果–》原列表片段的拷贝
切片的范围:–》取得到start起始值,取不到stop终止值,可以记作 顾头不顾尾
step步长默认是1——》简写为[start:stop]
step是正数——》[:stop:step] -->切片的第一个元素
默认是列表的第一个元素,
从第一个元素开始往后计算切片
step是正数——》[start::step] -->切片的最后一个元素
默认是列表的最后一个元素,
从start开始往后计算切片
step是负数-》[:stop:step] -->切片的第一个元素
默认是列表的最后一个元素
, 从最后一个元素开始往前计算切片
step是负数——》[start::step] -->切片的最后一个元素
默认是列表的第一个元素
从start开始往前计算切片
strs='ABCDEFGHIGKLMN'
print('--------步长为正数------')
print('原字符串的标识:',id(strs))
str1=strs[1:5:] # BCDE 以及strs[1:5] 步长默认是1,起始下标是1,终止下标是5
str2=strs[:5:2] # ACE 步长是2,起始下标默认为1,终止下标为5
str3=strs[1::2] # BDFHGLN 步长是2,起始下标是1,终止下标默认为字符串的最后一个元素的下标
print('步长为正时切片的标识:strs[1:5:]',str1,id(str1))
print('strs[:5:2]' ,str2, id(str2))
print( 'strs[1::2] ',str3,id(str3))print('\n-----步长为负数------')
str4=strs[13:3:-1] #步长是-1,起始下标是字符串的最后一个元素的下标,终止下标是3
str5=strs[:3:-1] #步长为-1,起始下标默认是字符串的最后一个元素下标,终止下标是3
str6=strs[13::-1]#步长是-1,起始下标是13,终止下标默认是字符串第一个元素的下标
print('strs[13:3:-1]',str4,id(str4))
print('strs[:3:-1]',str5,id(str5))
print('strs[13::-1]',str6,id(str6))
字符串
python当中的字符串的相关方法可以查看 python学习——【第一弹】 ,这里对字符串的相关操作介绍一下。
1:改变字母大小写
strs='hello World'
# 首字母大写
str1=strs.capitalize()
print('首字母大写',str1)
# 全部大写
str2=strs.upper()
print( '全部大写',str2)
# 全部小写
str3=strs.lower()
print('全部小写:',str3)
# 大小写互换
str4=strs.swapcase()
print('大小写互换', str4)#zifu='abc_def-gkL'
str5=zifu.title()
print('转换后的字符:',str5) #转换后的字符: Abc_Def-Gkl用特殊字符或者数字隔开的单词首字母大写
字母的大小写也可运用于验证码的检验
当中
# 将其都转换成大写或小写字母后进行核对检验
yan='abc_De1s5'
yinput=input('请输入验证码:')
while yinput.upper()!=yan.upper():print('验证码错误!')yinput=input('请重新输入验证码:')
print('验证码输入成功!')
2:find(), index()函数查找元素索引
python中提供了find() 和index()方法
通过元素查找索引值;
其中利用 find()查找 若找到相应元素就返回该元素的索引值,如果找不到就返回-1;
利用 index()查找 如果找到相应元素就返回该元素索引值,找不到就抛出 ValueError 错误。
zifu='hello world'
print(zifu.find('h')) #0
print(zifu.find('a')) #-1
print(zifu.index('e')) #1
print(zifu.index('a')) #ValueError
3:center()函数居中字符串
strs = 'alexWUsir'
str1 = strs.center(20, '%') # 用%填充后共有20个字符
str2 = strs.center(15, '|') # 用|填充后共有15个字符
str3 = strs.center(20) # 空白填充
print(str1)
print(str2)
print(str3)
4:is判断
strs='123 abc@'
print(strs.isdigit())#判断该字符串是否全由数字组成 False
print(strs.isalpha())#判断该字符串是否全由字母组成 False
print(strs.isalnum())#判断该字符串是否只由字母或数字组成 False
print(strs.isspace())# False 判断该字符串是否全部由空格组成,如果字符串有空格外其他数字组成或者是空,返回False
5:replace()函数替换字符串中的元素
Python中的 replace() 方法
把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
语法:str.replace(old, new,[max])
str1 = '来者何人,东方不败!东方不败'
str2 = str1.replace('东方不败','天山果佬')
str3 = str1.replace('东方不败','天山果佬',1)
print(str1)
print(str2)
print(str3)
6:format()函数格式化字符串
是一种字符串格式化的方法
,主要是用来构造字符串。
基本语法: 通过 {} 和 : 来代替以前的 % 。在 {} 符号操作过程中,每一个 {} 都可以设置顺序,分别与format的参数顺序对应;如果没有设置{}下标,默认重0开始递增。
strs="我叫{0},今年{2}岁,来自{3},喜欢的语言是{1}。".format('小明','python','19','山东')
str1="我叫{},今年{}岁,来自{},喜欢的语言是{}。".format('小亮','19','山东','PHP')
print(strs)
print(str1)
7:split()函数分割字符串
str1='hello world 你好 世界'
str2='hello:world:你好:世界'
s1=str1.split()
print('默认用空格分割:',s1)
s2=str2.split(':')
print('使用分号分割:',s2)
8:count()函数计算字符串中元素出现的个数
str1='hello world'
str2=str1.count('l')
print('\"l\"的个数是:',str2) #"l"的个数是: 3
str3=str1.count('a')
print('\"a\"的个数是:',str3) #"a"的个数是: 0
9:strip()函数删除字符串前后的空格或字符
str1='--! hello! world! '
str2=str1.strip()#删除字符串前后的空格;默认删除的是字符串两边的空格
print(str2) #--! hello! world!
str3=str1.strip('--')#删除字符串前后的!
print(str3) #! hello! world!
列表
列表(List)
是 Python 中最基本的数据结构,它是一种有序的集合
,列表中每个元素都有其对应的位置值(索引),类似于其他语言中的数组;是一种可变序列
,对其进行增删改等操作不会影响它的id标识符。
列表的特点:
1,按照列表中的顺序有序排序;
2,索引映射唯一一个数据;
3,列表可以存储重复数据;
4,任意数据类型可混存;
5,根据需要动态分配和回收
1:创建列表
python中创建列表由两种方法:
一是使用方括号的方式创建列表
二是使用内置函数list()函数创建列表。
# 1 使用方括号:我们只需要把列表的所有元素放在 方括号 [] 里面,每个元素之间通过 逗号 , 间隔起来即可,当然,列表中允许存放不同数据类型的元素。
list1=['a',{},'b',1,'c']# 2 使用内置函数 list()
list2=['a',{},'b',1,'c']
print(list1,type(list1))
print(list2,type(list2))
#['a', {}, 'b', 1, 'c'] <class 'list'>
# ['a', {}, 'b', 1, 'c'] <class 'list'>
空列表的创建
lis=[]
lis2=list()
2:查询列表中元素的索引值
python中提供了index()函数
来查找列表中元素的索引,要注意的是在列表对象中没有find()方法,如果使用回抛出AttributeError错误;而str对象同时具有find()和index()方法!
index()函数
# 当列表中有相同元素时,使用index()函数取返回指定元素的索引时默认返回相同元素中第一个元素的索引;如果要查找的元素在列表中不存在,会报ValueError 的错误
list3=list(['a','b','a','c'])
print(list3,'第一个a的位置是',list3.index('a')) #['a', 'b', 'a', 'c'] 第一个a的位置是 0
# index在指定范围查找元素
print(list3,list3.index('b',1,3))# ['a', 'b', 'a', 'c'] 1 查找下标从1到3之间的元素(包括下标1不包括下标3的元素)
当然,如果想获取列表中所有元素的索引值,我们可以使用列表推导式和enumerate()函数
来获取
languages = ["JavaScript","Python","Java","Python","C++","Python"]
python = [index for (index, item) in enumerate(languages)]
print(python) #[0, 1, 2, 3, 4, 5]#输出元素为“python”的索引
'''
使用enumerate()函数,可以存储满足条件的元素的索引,首先将列表中的每一个键值对(index,item)作为参数传递到函数中;
index 表示列表项的索引号, item 表示列表项本身;接着会像一个计数器一样从0开始计数,满足判断条件后自动递增,
选择并移动符合条件的元素索引,并将满足条件的索引存储在 "python" 形成一个新的列表
'''
languages = ["PHP","Python","Java","Python","C++","Python"]
python = [index for (index, item) in enumerate(languages) if item == "Python"]
print(python)
##[1, 3, 5]
3:列表的遍历
使用for — in的方法遍历列表
list2=[10,20,30,'python']
for i in list2: #i代表迭代元素 不需要另外声明 直接利用for循环打印出来列表元素print(i,id(list2))
'''
10 140620010123824
20 140620010123824
30 140620010123824
python 140620010123824
'''
4:列表生成式
生成列表的公式——》语法格式 [i * i for i in range(1,n)]
其中:
i*i中的i 表示列表元素的表达式
for 后面的i 表示自定义变量
range()函数中的1,n表示可迭代的对象
注意事项:表示列表元素的表达式中包含自定义变量
list1=[ i for i in range(1,10)] #注意是左闭右开区间 产生的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9]
print('产生的整数序列',list1,id(list1)) #产生的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9] 140173346492976
list2=[i*i for i in range(1,10)] #[1, 4, 9, 16, 25, 36, 49, 64, 81]
print(list2) #[1, 4, 9, 16, 25, 36, 49, 64, 81]
5:切片获取列表元素
切片前面已经为大家介绍过了,这里举个例子:
list4=[10,20,30,40,50]
print('原列表:',id(list4)) #原列表: 140709945504304
after=list4[1:3:1]
print('切的片段:',after,id(after)) #切的片段: [20, 30] 139765064281136
print('此时的原列表:',id(list4))#此时的原列表: 139765064278576
6:向列表中添加元素
我们可以直接使用下标索引更新列表
books = ["语文", "数学", "英语", "历史", "物理", "化学"]
books[1] = "地理"
print(books)
#['语文', '地理', '英语', '历史', '物理', '化学']
由于列表是可变序列
,因此在python中可以使用append() 或 insert()方法
来向列表中添加元素
:
使用append()函数在列表的末尾
添加元素
books=['Chinese','English','Mathematics']
bookes.append("Science")
print(books)
#['Chinese','English','Mathematics','Science']
extend()在列表的末尾至少添加一个元素
list2=[10,20,30,'python']
list3=[1,2,3,4,5]
print(id(list3))
list3.extend(list2)
print(list3,id(list3))#[1, 2, 3, 4, 5, 10, 20, 30, 'python']
# 将list2中的所有元素都添加到了list3的末尾,添加后和添加前的原列表的id值是一样的
使用insert()函数在列表的指定位置插入新对象
books=['Chinese','English','Mathematics']
books.insert(1,"Science")
print(books)
#['Chinese', 'Science', 'English', 'Mathematics']
7:对列表排序
常见的两种方式
1:调用sort()方法
列表中的所有元素默认按照从小到大的顺序进行排序,可以在函数括号中指定
reverse=True 进行降序排序
2:调用内置函数sorted()
可以在函数的括号中指定 reverse=True 进行降序排序 ; 原列表不发生改变 但产生一个新的列表对象。
reverse 颠倒 撤销 使完全相反 相反的
sort 分类 排序 种类 整理(v&n)
sorted v. 整理; 把…分类; 妥善处理; 安排妥当; adj.完成的;已解决的;整理好的;
# 使用sort()方法 没有指定reverse=True,默认为升序排序;排序前后的列表id值不发生改变
list1=[11,22,33,44,55,0,11]
print('排序前的列表',list1)
list1.sort()
print('排序之后的列表',list1)
#排序前的列表 [11, 22, 33, 44, 55, 0, 11]
#排序之后的列表 [0, 11, 11, 22, 33, 44, 55]
list2=[22,33,11,33,22,44,55,99]
list2.sort(reverse=True)#当不指定时,默认是升序
print('降序后的:',list2)
#降序后的: [99, 55, 44, 33, 33, 22, 22, 11]
# 使用内置函数sorted将列表进行排序产生一个新的列表对象
list3=[11,22,55,44,33]
print(list3,id(list3)) #[11, 22, 55, 44, 33] 140335719927232
new_list3=sorted(list3)
print(new_list3,id(new_list3)) #[11, 22, 33, 44, 55] 140335719386160
new_lis3=sorted(list3,reverse=True)
print(new_lis3)#[55, 44, 33, 22, 11]
8:删除列表中的元素
在对列表进行删除操作时,我们可以根据索引删除对应位置的元素
,也可以根据元素本身的值进行删除
;当然,还可以直接利用 clear()函数 清空整个列表
;并且删除操作也不会改变原列表的标识。
del()函数
books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
del books[1] # 删除第 2 个元素
print(books)#['语文', '英语', '历史', '数学', '物理', '数学']
del books[1:4] # 删除第 2 个到第 4 个的所有元素
print(books)#['语文', '物理', '数学']
如果想要删除的列表索引不存在就会抛出 IndexError: list assignment index out of range 的错误
pop()函数
pop()函数默认删除最后一个元素,并返回删除的元素
books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
books.pop() # 默认删除列表最后一个元素 '数学'
print(books) # ['语文', '数学', '英语', '历史', '数学', '物理']books.pop(3) # 删除列表指定索引下的元素 '历史'
print(books)#['语文', '数学', '英语', '数学', '物理']
如果要删除的列表索引不存在,就会抛出 IndexError: pop index out of range 的错误remove
remove()函数
remove()函数删除指定的元素,出现重复元素只删除第一个出现的元素
books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
books.remove("数学")
print(books)#['语文', '英语', '历史', '数学', '物理', '数学']
**如果删除的索引不存在,会抛出 ValueError: list.remove(x): x not in list 的错误
clear()函数
清空列表
books = ["语文", "数学", "英语", "历史", "数学", "物理", "数学"]
books.clear()
print(books)#[]
9:列表的运算操作符
利用操作符对列表去重:
list1 = [1,2,3,4,5,6,7,10,1,2,2,3,4,8,9,0]
new = []
for each in list1:if each not in new:new.append(each)
print('去重后的列表:',new)# 去重后的列表: [1, 2, 3, 4, 5, 6, 7, 10, 8, 9, 0]
#遍历list1的每个元素,若不存在于new,调用append添加
列表函数、方法补充
每篇一语
每个方向都有人奋力追光!
如有不足,感谢指正!
相关文章:
python学习——【第四弹】
前言 上一篇文章 python学习——【第三弹】 中学习了python中的流程控制语句,这篇文章我们接着学习python中的序列。先给大家介绍不可变序列 字符串和可变序列 列表,下一篇文章接着补充元组,集合和字典。 序列 指的是一块可以存放多个值的…...
Web3中文|无聊猿Otherside元宇宙启动第二次旅行
3月9日消息,无聊猿Bored Ape Yacht Club母公司Yuga Labs公布了其Otherside元宇宙游戏平台第二次测试的最新细节。Yuga Labs公司称,“第二次旅行”将于3月25日举行,由四位Otherside团队长带领完成近两小时的游戏故事。本次旅行对Otherdeed NFT…...
SpringCloud-7_OpenFeign服务调用
OpenFeign介绍OpenFeign是什么1.OpenFeign是个声明式WebService客户端,使用OpenFeign让编写Web Service客户端更简单2.它的使用方法是定义一个服务接口然后在上面添加注解3.OpenFeign也支持可拔插式的编码器和解码器4.Spring Cloud对OpenFeign进行了封装使其支持了S…...
解决docker容器之间网络互通
docker容器之间相互访问 1.查看当前的网络 Copy [roothost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 3dd4643bb158 bridge bridge local 748b765aca52 host host …...
测试微服务:快速入门指南
在过去几年中,应用程序已经发展到拥有数百万用户并产生大量数据。使用这些应用程序的人期望快速响应和 24/7 可用性。为了使应用程序快速可用,它们必须快速响应增加的负载。 一种方法是使用微服务架构,因为在单体应用程序中,主要…...
MySQL Show Profile分析
6 Show Profile分析(重点) Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量 官网文档 默认情况下,参数处于关闭状态,并保存最近15次的运行结果 分析步骤: 1、是否…...
基于Docker快速搭建蜜罐Dionaea(30)
实验目的 1. 快速搭建Dionaea蜜罐 2. 使用Nmap扫描测试Dionaea蜜罐预备知识1. 初步认识Dionaea dionaea,中文的意思即捕蝇草,是否形容蜜罐很形象?dionaea是nepenthes(猪笼草)的发展和后续,更加容易被部署和…...
WP_Query 的所有参数及其讲解和实用案例
WP_Query 是 WordPress 提供的一个强大的查询工具,用于获取与当前页面或文章相关的内容。下面是 WP_Query 的所有参数及其讲解:author: 查询特定作者的文章。可以是作者 ID、作者登录名或作者昵称。实用案例:查询作者为 "John Smith&quo…...
100个网络运维工作者必须知道的小知识!(上)
1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI参考模型的层次是什么? 有7个OSI层:物理层,数据链路层,网络层,传输…...
Python如何获取大量电影影评,做可视化演示
前言 《保你平安》今天上映诶,有朋友看过吗,咋样啊 这是我最近比较想看的电影了,不过不知道这影评怎么样,上周末的点映应该是有蛮多人看的吧,可以采集采集评论看过的朋友发出来的评论,分析分析 这周刚好…...
【C语言】详讲qsort库函数
qsort函数介绍具体作用qsort函数是一种用于对不同类型数据进行快速排序的函数,排序算法有很多最常用的冒泡排序法仅仅只能对整形进行排序,qsort不同,排序类型不受限制,qsort函数的底层原理是一种快速排序.基本构造qsort( void* arr, int sz, int sizeof, cmp_code);…...
SEO技术风口来了|SEO能否抓住全球约93%的网络用户?
开篇词作者/出品人 | 美洽 SEO 流量专家 白桦为什么要做一个 SEO 专栏?在一部分人眼中,SEO(搜索引擎优化)已经是老掉牙的玩意儿,在这个信息爆炸的年代,它似乎已经无法承担吸引流量的主要作用。但ÿ…...
mxnet版本与numpy,requests等都不兼容问题
简介 跟着李沐学AI时遇到的mxnet环境问题。 问题 使用pip install mxnet时会重新安装相匹配的numpy和requests,而这新安装的这两个版本不满足d2l所需的版本。 然后报错: ERROR: pips dependency resolver does not currently take into account all …...
逆向分析——壳
你脑海中的壳是什么 壳在自然界是动物的保护壳,软件同样有保护壳,为了防止破解 也许大海给贝壳下的定义是珍珠,也许时间给煤炭下的定义是钻石 ——沙与沫 壳的由来 在DOS时代,壳一般指的是磁盘加密软件中的一段加密程序 后来发展…...
为 Argo CD 应用程序指定多个来源
在 Argo CD 2.6 中引入多源功能之前,Argo CD 仅限于管理来自 单个 Git 或 Helm 存储库 的应用程序。用户必须将每个应用程序作为 Argo CD 中的单个实体进行管理,即使资源存储在多个存储库中也是如此。借助多源功能,现在可以创建一个 Argo CD 应用程序,指定存储在多个存储库…...
verilog specify语法
specify block用来描述从源点(source:input/inout port)到终点(destination:output/inout port)的路径延时(path delay),由specify开始,到endspecify结束&…...
CMake编译学习笔记
CMake学习笔记CMake编译概述CMake学习资源CMake编译项目架构cmake指令CMakeList基础准则CMakeList编写项目构建cmake_minimum_required() 和 project()set()find_package()add_executable()aux_source_directory()连接库文件include_directories()和target_include_directories…...
Day913.反向代理和网关是什么关系 -SpringBoot与K8s云原生微服务实践
反向代理和网关是什么关系 Hi,我是阿昌,今天学习记录的是关于反向代理和网关是什么关系的内容。 一、反向代理 反向代理 是一种网络技术,用于将客户端的请求转发到一个或多个服务器上,并将响应返回给客户端。与正向代理不同&am…...
IT行业就业趋势显示:二季度平均月薪超8千
我国的IT互联网行业在近些年来规模迅速扩大,技能和技术水平也明显提升,目前IT互联网行业已经成为社会发展中新型产业的重要组成部分,行业的人才队伍也在不断的发展壮大,选择进入入互联网行业工作的人也越来越多。 根据58同城前段…...
【毕业设计】基于Java的五子棋游戏的设计(源代码+论文)
简介 五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用,客户端…...
C#:Krypton控件使用方法详解(第十四讲) ——kryptonSeparator
今天介绍的Krypton控件中的kryptonSeparator。下面介绍控件的外观属性如下图所示:Cursor属性:表示鼠标移动过该控件的时候,鼠标显示的形状。属性值如下图所示:DrawMoveIndicator属性:表示确定移动分隔符时是否绘制移动…...
Java的jar包打包成exe应用
将springboot项目使用maven打出的jar包,打成windows平台下exe应用程序包(自带jre环境)。 工具:1、exe4j 2、Inno Setup 工具放到网盘,链接:https://pan.baidu.com/s/1ZHX8P7u-7GBxaC6uaIC8Ag 提取码&#x…...
Latex学习笔记
Latex 学习笔记 快速入门 编译软件: TeX Live TexStudio, Ctex, 线上: Overleaf第一个示例代码: \documentclass{article} % 设置文档使用的文档类 % 导言区 \title{my first Latex document} \author{Jclian91} \date{\today} \begin{document} % 正文区\maket…...
【c++复习】C++的基础知识(常用关键字、缺省参数、函数重载、引用)
C基础写在开头C基础常用关键字using namespace流插入和流提取操作符内联函数(inline)宏auto关键字 (c11nullptr (c11缺省参数函数重载引用写在开头 C基础部分我想介绍如下几个关键点: 常见关键字命名空间的定义和使用缺省参数函数重载引用、指针和引用的区别内联函…...
Docker入门建议收藏 第二部分
二、Docker 容器技术与虚拟机的区别 Docker 到底是个什么东西呢?我们在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机。 虚拟机 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在…...
蓝桥杯三月刷题 第7天
文章目录💥前言😉解题报告💥三角回文数🤔一、思路:😎二、代码:💥数数🤔一、思路:😎二、代码:💥数组切分🤔一、思路:😎二、…...
面试官问百万数据excel导出功能如何实现?
文章目录 背景实现1.异步处理1.1 使用job1.2 使用mq2.使用easyexcel4.多个sheet5.计算limit的起始位置6.文件上传到OSS7.通过WebSocket推送通知8.总条数可配置9.order by商品编号总结背景 用户在UI界面上点击全部导出按钮,就能导出所有商品数据。 咋一看,这个需求挺简单的。…...
理解HTTPS及配置
HTTP的弊端及HTTPS的由来 众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种.那么在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数据本身存在的安全问题:(1)、通信使用明文(不…...
IP-guard浏览器上传下载智能加解密,让管理更省心省力
现在员工日常工作中经常会通过浏览器访问公司的业务系统(OA、JIRA等),或者访问其他外部系统,访问下载服务器的文档变得更便捷,工作地点也不再局限于办公室中。为确保应用系统机密安全且又不影响员工的正常工作…...
leetcode day22 位运算
位运算咋这么老难 剑指 Offer 56 - I. 数组中数字出现的次数 借评论区大佬答案:nums [1,2,10,4,1,4,3,3] a^a0a^0aa^b^ca^c^ba&(-a)最低位为1的二进制(从又到左)所有的异或结果得到sum2^108flag-8&88可分为两组,一组为与…...
什么网站可以做护士三基试题/泽成杭州seo网站推广排名
有时候我们的数据是按某个频率收集的,比如每日、每月、每15分钟,那么我们怎么产生对应频率的索引呢?pandas中的date_range可用于生成指定长度的DatetimeIndex。我们先看一下怎么生成日期范围:pd.date_range(startdate,enddate)1.生…...
网站诊断分析/交换友链平台
29 November 2013by skoo我们都知道Go语言是原生支持语言级并发的,这个并发的最小逻辑单元就是goroutine。goroutine就是Go语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的。当我们创建了很多的goroutine,并且它们都是跑…...
企业网站需要在电信做哪些备案/ping站长工具
1、修改grub.cfg内的timeout配置 grub.cfg位于/boot/grub2文件夹内 将其中63行和67行的timeout5修改为timeout1 2、打开networkManager.service服务 systemctl enable NetworkManager.service 输入命令后如果没有输出信息证明该服务已经打开,跳过此步骤 3、修改…...
温岭市建设规划局网站/百度关键词价格怎么查询
题目链接:http://pat.zju.edu.cn/contests/ds/2-08 一副扑克牌的每张牌表示一个数(J、Q、K分别表示11、12、13。两个司令都表示6)。任取4张牌。即得到4个1~13的数,请加入运算符(规定为加 减- 乘* 除/ 四种)…...
东营信息网/宁波seo关键词如何优化
CheckBox 的默认效果是文字在右边,如下所示 但是我们经常是有文字在左边的需求.可以按照下面的方式进行处理 <CheckBoxandroid:text"CheckBox"android:layout_width"wrap_content"android:layout_height"wrap_content"android:id"id/che…...
百度 新网站 重定向过多/百度经验手机版官网
这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下函数:split()Python中有split()和os.path.split()两个函数,具体作用如下:…...