Python基础语法day02字符串详解和列表

简介: 今天是python基础语法入门第二天,大概总共会有四天左右。四天后就是对于python的numpy库的详细文章。那话不多说,我们开始。

今天是python基础语法入门第二天,大概总共会有四天左右。四天后就是对于python的numpy库的详细文章。那话不多说,我们开始。


字符串详解

字符串独有功能

检测头尾字符

startwith检测开头返回值为bool类型

endwith检测结尾返回值为bool类型

str = "My name is Anduin"
result1 = str.startwith("My")
result2 = str.endwith("in")
print(result1)#True
print(result2)#True

判断输入结果是否为数字

isdecimal返回值为bool类型

str = "12332"
print(str.isdecimel)#True

这里有一点需要注意的是有些文章上会让大家使用isdigit来判断,但是这个需要慎用。原因是因为如果输入为序号1(1外面一个圈的)isdigit也会判断为真返回true,这显然是我们不想看到的。


首尾删除

strip如果不填参数默认删除空格


lstrip删除开头指定内容


rstrip删除结尾指定内容


str = "   Hello   "
print(str.strip())#Hello
print(str.lstrip())#"Hello   "
print(str.rstrip())"   Hello"
str1 = str.strip()
#此时str1 = "Hello"
print(str1.strip("H"))#ello
print(str1.strip("o"))#Hell
print(str1.lstrip("H"))#ello
print(str1.rstrip("o"))#Hell


字符串中的替换

replace(A, B)用B替换A

str = "My namw is Anduin"
result = str.replace("Anduin", "AABB")
print(result)#My name is AABB


字符串的分割

split按照指定的字符分割字符串

和上面的rstrip一样,加上r会从右边开始执行

str = "msg|res|val"
result1 = str.split("|")
#["msg", "res", "val"]
result2 = str.split("|", 1)
#["msg", "res|val"]
result3 = str.rsplit("|", 1)
#["msg|res", "val"]

字符串的连接

datalist = ["My", "name", "is", "Anduin"]
v1 = "*".join(datalist)
print(v1)
#My*name*is*Anduin
v2 = "".join(datalist)
print(v2)
#MynameisAnduin

字符串的居中

center居中


ljust居左


rjust居右


以上三个函数都会帮用指定的符号补齐空白部分

str = "Anduin"
str1 = str.center(10, "*")
#**ANduin**
str1 = str.ljust(10, "*")
#Anduin****
str1 = str.rjust(10, "*")
#****Anduin

字符串的公共功能

加、乘功能

主要是字符串+字符串和整数*字符串

str = "Anduin"
print(# * str)
#AnduinAnduinAnduin
print(str + "yyds")
#Anduinyyds


索引功能(很重要)

str[a,b]表示取编号a<=x<b的值,且编号从0开始

str[a,b,c]表示取编号a<=x<b的间隔c值,且编号从0开始

在python中-1表示最后一个,相应的-2,-3,-4表示倒数第二,第三,第三个。


name = "anduin"
print(name[0] + name[1])
#an
print(name[-1], name[-2])  # 字符串只能通过索引取值,不能修改值
#ni
print(name[0:2])
#an
print(name[2:])
#duin
print(name[:3])
#and
# 步长 跳着取字符串内容
print(name[0::2])
#adi
print(name[::-1])
#niudna可以用来将字符串倒置


求长度

len获取字符串长度

name = "Anduin"
print(len(name))
#6

一个很重要的函数range()

#取0-n的值
range(10)  # [0,1,2,3,4,5,6,7,8,9]
#取1-10的值
range(1, 10)
#间隔为2取1-10
range(1, 10, 2)
#取一到10的值
range(10, 1, -1)


列表

定义

       列表是有序可变的容器,可以存不同类型的元素。这里需要注意字符串是不可变的,列表是可变的。


       我们可以发现,上面对字符串的操作都是生成了一个新的字符串而字符串本身不改变,但是对于列表的操作是改变其本身的。


独有功能


创建空列表和追加

append追加:在列表最后加入一个元素

#创建一个空列表
list = []
#列表的追加
list.append("锤子")
list.append("钟无艳")


元素的指定位置插入

insert可以在指定位置插入,该位置原名来的元素及其以后的元素依次向后移动。

如果插入位置很离谱比如:-1000,999等越界插入,不会报错,会相应在开头或者末尾插入。

area = ["艾泽拉斯", "暴风城", "王宫"]
area.insert(0, "冰冠堡垒")

追加一个列表

extend可以在指定列表后加上一个列表,将两个列表拼接起来(注意使用先后)

area = ["艾泽拉斯", "暴风城", "王宫"]
charictor = ["巫妖王", "阿尔萨斯", "女王"]
area.extend(charictor)
print(area)
#["艾泽拉斯", "暴风城", "王宫", "巫妖王", "阿尔萨斯", "女王"]


元素的两种删除方法

方法一:

使用remove删除列表中的指定元素

area = ["艾泽拉斯", "暴风城", "王宫"]
area.remove("艾泽拉斯")
#["暴风城", "王宫"]

方法二:

使用pop对指定位置进行删除。pop删除会返回删除的元素,效果如下:

area = ["艾泽拉斯", "暴风城", "王宫"]
item = area.pop(1)
#["艾泽拉斯", "王宫"] item = "暴风城"
#如果没有指定删除位置,默认删除最后一个
area = ["艾泽拉斯", "暴风城", "王宫"]
item = area.pop()
#["艾泽拉斯", "暴风城"] item = "王宫"


清空列表

clear可以删除列表内所有的元素

area.clear()  # 清空列表


排序功能

sort可以对列表内的元素进行排序(默认从小到大,想要倒序请看下一条)。注意此处有两点提醒:1.尽量对只含有数字的列表排序2.被排序的列表内所有元素必须类型一致。

#从小到大排序
num_lsit = [12, 42, 75, 94, 23, 25, 423]
num_lsit.sort()

字符串倒置

reverse可以将列表颠倒,可以利用这个实现倒序

1. num_lsit = [12, 42, 75, 94, 23, 25, 423]
2. num_lsit.reverse()#尾变头, 头变尾
3. num_lsit.sort(reverse=True)#倒序排序



公共功能


len获取长度

类比上文字符串


方括号索引、步长

类比上文字符串,规则一致,这里只举例增加的功能:del 删除

#从2开始删除后面的
del list[2:]


嵌套

嵌套顾名思义就是在一个列表里存一个列表(列表内的元素可以为任意类型),下面我们来存储一组用户名和密码

user_list = []
user1 = ["anduin", "123456"]
user2 = ["alex", "654321"]
user3 = ["Marry", "888888"]
user_list.append(user1)
user_list.insert(0, user2)
user_list.insert(1000, user3)
print(user_list)


运行结果如图:


有了对于字符串和列表索引的基础,对于嵌套列表的索引我们可以直接看代码:


user_list = []
user1 = ["anduin", "123456"]
user2 = ["alex", "654321"]
user3 = ["Marry", "888888"]
user_list.append(user1)
user_list.insert(0, user2)
user_list.insert(1000, user3)
print(user_list[1])
print(user_list[-1])
print(user_list[1][0])
print(user_list[1][-1])
print(user_list[::2])


for循环

       昨天我们学了while循环。for循环和while循环的主要区别在于:while循环适合次数不知道的循环,for循环适合次数已知的循环。


例如用户输密码,不知道输入多少次才能对那我们就用while循环,遍历已知个数的列表就用for循环。

"""
这里提供两种for循环遍历列表来解释for循环
"""
list = ["dog", "cat", "pig"]
for item in list:
    print(item)
for i in range(len(list)):
    print(list[i])


第一种是设置一个item变量,一次等于list中每一个元素,打印该元素的复制


第二种是获取长度列表[0, 1, 2],用索引的 方法输出列表对应位置的元素

相关文章
|
18天前
|
SQL 定位技术 API
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
16 0
|
3天前
|
数据处理 Python
Python中字符串、列表、字典常用的拼接方法有哪些?
Python中字符串、列表、字典常用的拼接方法有哪些?
13 1
|
4天前
|
大数据 数据处理 Python
Python中的列表推导式与字典推导式
Python中的列表推导式与字典推导式
|
4天前
|
测试技术 Python
Python中的列表推导式与字典推导式:简化代码的高级技巧
Python中的列表推导式与字典推导式:简化代码的高级技巧
|
4天前
|
存储 Python 容器
Python基础语法快速上手:变量、数据类型与运算符
Python基础语法快速上手:变量、数据类型与运算符
|
4天前
|
存储 数据挖掘 C语言
Python数组与列表的区别
Python数组与列表的区别
|
6天前
|
程序员 C语言 Python
[oeasy]python0007_ print函数_字符串_display_电传打字机_程序员的浪漫
[oeasy]python0007_ print函数_字符串_display_电传打字机_程序员的浪漫
26 5
[oeasy]python0007_ print函数_字符串_display_电传打字机_程序员的浪漫
|
8天前
|
C语言 Python
Python基础语法(番外篇)
Python基础语法(番外篇)
|
8天前
|
程序员 编译器 C语言
Python基础语法(内置Python, pycharm配置方式)
Python基础语法(内置Python, pycharm配置方式)
|
20天前
|
存储 索引 Python
python数据容器之列表相关的操作
python数据容器之列表相关的操作
12 1

相关产品

  • 云迁移中心