重点说一下,蓝桥杯python组中,题目一般都会要求写输入输出,而像LeetCode中的算法练习,更适用于找工作时用,算法题主要按照算法思想编写函数体,不考虑输入的变量,只考虑函数的返回值。
下面将介绍关于蓝桥杯python组的一些基础知识。
1、列表转化为字符串
比如有列表ls存储了几个字符串,要将其转化为一整个字符的格式。
" ".join()方法的使用
ls = ['1', '2', '3', '4']
str1 = "".join(ls)
print(str1)
#结果为:'1234'
上面程序就是将列表中的多个字符转换成了一个字符串。
注意," ".join()方法下面的用法
str2 = ['1', '2', '3', '4']
print(":".join(str2)) #结果为:'1:2:3:4'
######要记住列表转字符串不是简单的str(),就可以完成的。#########
2、字符串可以直接作为迭代对象
str2 = "love"
for item in str2:
print(item)
#结果为:l
o
v
e
3、不可变类型
不可变类型有:
- 数字
- 字符串
- 元组
- 不可变的几何
如果要修改字符串中的某个字符,首先要先转化为列表类型,通过列表修改,最后再转化为字符串的格式,如下所示
#要将str3字符串中的9变成4,使字符串最终变成"12345"
str3 = "12395"
ls2 = list(str3) #ls2为['1', '2', '3', '9', '5']
ls2[3] = '4' #此时ls2为['1', '2', '3', '9', '5']
str3 = "".join(ls2)
print(str3)
#结果为:'12345'
上面的过程过于复杂可以使用.replace()方法,如下所示。
#要将str3字符串中的9变成4,使字符串最终变成"12345"
str3 = "12395"
str3 = str3.replace("9","4")
print(str3)
#结果为:'12345'
str3 = "12395999"
str3 = str3.replace("9","4")
print(str3)
#结果为:"12345444"
所以**.replace()方法是将原字符串中所有字符"9"都变成了字符"4"**。
4、接收由空格分开的多个数据
在算法题中,接收用空格分割的数据很常见,使用.split()方法。
ls = input().split()
.split()方法括号里填写的是分隔符,不填默认是就是空格,如果输入1 2 3
ls就默认等于[1, 2, 3],接下来就可以随意使用了。
并且可以用.split()方法实现将字符串转化为列表类型,如下所示。
#简单的字符串可以理解为将,字符串转换成列表。。但其是字符串的分割功能
#字符串.split(" ")通过" "中的空格来分割,返回一个字符串列表
#因为字符串“1234”中没有空格,所以分割后的返回的字符串列表是['1234']
str1 = '1234'
current = str1.split(" ")
print(current) #结果为:['1234']
5、同时改变列表中的所有元素类型
比如有列表ls5,其里面的元素全部都是字符型,而你需要将这些字符串全部转化为int型,这个时候可以写一个循环来实现,但是在python中有更加简洁的方法,是使用.map()方法。
#如果输入1 2,
ls5 = input().split() #ls5为['1', '2']
ls6 = list(map(int,ls5))
print(ls6)
#结果为:[1, 2]
map函数说白了,就是对可迭代对象里面的每一个元素,进行同一种映射,上面的代码就是将ls里的每一个元素,都用int()函数映射为int型,将返回的对象再用list()函数转换为列表