一、字符串 str 常用方法
| 分类 | 方法 | 作用 | 示例 |
|---|---|---|---|
| 大小写 | .upper() | 全部转大写 | "abc".upper() → "abc" |
.lower() | 全部转小写 | "abc".lower() → "abc" | |
.title() | 单词首字母大写 | "hi py".title() → "hi py" | |
| 判断类 | .isdigit() | 判断是否全为数字 | "123".isdigit() → true |
.isalpha() | 判断是否全为字母 | "abc".isalpha() → true | |
.startswith(x) | 是否以x开头 | "py".startswith("p") → true | |
.endswith(x) | 是否以x结尾 | "txt".endswith("t") → true | |
| 查找 | .find(x) | 找下标(找不到返回-1) | "abc".find("b") → 1 |
.index(x) | 找下标(找不到报错) | "abc".index("a") → 0 | |
.count(x) | 统计x出现次数 | "aab".count("a") → 2 | |
| 切割拼接 | .split(sep) | 按分隔符拆成列表 | "1,2".split(",") → ["1","2"] |
.join(列表) | 用自身拼接列表元素 | ",".join(["1","2"]) → "1,2" | |
| 替换清洗 | .replace(a,b) | 把a替换成b | "a1".replace("1","2") → "a2" |
.strip() | 去除首尾空格/换行 | " py ".strip() → "py" | |
| 截取 | 切片 [start:end:step] | 截取子串 | "abcd"[1:3] → "bc" |
二、列表 / 数组 list 常用方法
| 分类 | 方法 | 作用 | 示例 |
|---|---|---|---|
| 增 | .append(x) | 末尾加1个元素 | [1,2].append(3) → [1,2,3] |
.insert(下标,x) | 指定位置插入 | [1,3].insert(1,2) → [1,2,3] | |
.extend(列表) | 合并另一个列表 | [1].extend([2,3]) → [1,2,3] | |
| 删 | .pop(下标) | 按下标删,返回元素 | [1,2].pop(0) → 1 |
.remove(x) | 按值删第一个匹配项 | [1,2,1].remove(1) → [2,1] | |
.clear() | 清空所有元素 | [1,2].clear() → [] | |
| 查 | .index(x) | 返回元素下标 | [1,2].index(2) → 1 |
.count(x) | 统计元素个数 | [1,1,2].count(1) → 2 | |
| 排序反转 | .sort() | 原地升序排序 | [3,1,2].sort() → [1,2,3] |
.reverse() | 原地反转列表 | [1,2].reverse() → [2,1] | |
| 其他 | 切片 [start:end] | 截取子数组 | [1,2,3][1:] → [2,3] |
三、通用共用操作(字符串+列表都能用)
| 操作 | 作用 |
|---|---|
len(obj) | 获取长度:len("abc") / len([1,2]) |
x in obj | 判断是否包含:"a" in "abc" / 1 in [1,2] |
obj[i] | 通过下标取值 |
+ | 拼接:"a"+"b" / [1]+[2] |
四、关键区别(必记)
字符串不可改:不能 s[0]='x';列表可改:lst[0]=9 没问题
字符串方法都返回新字符串,原内容不变;列表多数方法是原地修改,无返回值
字符串
upper() 全部转大写
s = "hello python" res = s.upper() print(res) # 输出:hello python
lower() 全部转小写
s = "hello python" res = s.lower() print(res) # 输出:hello python
title() 单词首字母大写
s = "hello python" res = s.title() print(res) # 输出:hello python
isdigit() 判断是否全为纯数字
s1 = "12345" s2 = "123a" print(s1.isdigit()) # true print(s2.isdigit()) # false
isalpha() 判断是否全为纯字母
s1 = "abc" s2 = "abc1" print(s1.isalpha()) # true print(s2.isalpha()) # false
startswith() 判断是否以指定内容开头
s = "python.txt"
print(s.startswith("py")) # true
print(s.startswith("txt")) # false
endswith() 判断是否以指定内容结尾
s = "python.txt"
print(s.endswith(".txt")) # true
print(s.endswith(".jpg")) # false
find() 查找下标(找不到返回-1)
s = "abcdef"
print(s.find("c")) # 2
print(s.find("z")) # -1
index() 查找下标(找不到直接报错)
s = "abcdef"
print(s.index("d")) # 3
# print(s.index("z")) # 报错
count() 统计字符出现次数
s = "aabbaacc"
print(s.count("a")) # 4
print(s.count("b")) # 2
split() 按分隔符拆分字符串为列表
s = "1,2,3,4"
lst = s.split(",")
print(lst) # ['1', '2', '3', '4']
join() 用字符串拼接列表元素
lst = ["1","2","3"] s = "-".join(lst) print(s) # 1-2-3
replace() 替换指定内容
s = "hello world"
res = s.replace("world","python")
print(res) # hello python
strip() 去除首尾空格/换行符
s = " python " res = s.strip() print(res) # python
字符串切片(通用取值)
# 定义测试字符串
s = "abcdefg"
# 正向索引:0 1 2 3 4 5 6
# 反向索引:-7 -6 -5 -4 -3 -2 -1
# 1. 基础切片 [start:end]
print("1. 基础切片[1:4]:", s[1:4]) # bcd
# 2. 从开头截取到指定位置 [:end]
print("2. 开头到索引3:", s[:3]) # abc
print(s[:-1]) # 这个代表去掉最后一个字符,取前面所有字符。 也就是 # abcdef
# 3. 从指定位置截取到末尾 [start:]
print("3. 索引2到末尾:", s[2:]) # cdefg
# 4. 复制整个字符串 [:]
print("4. 完整复制字符串:", s[:]) # abcdefg
# 5. 指定步长截取 [start:end:step]
print("5. 步长为1全取:", s[0:7:1]) # abcdefg
print("5. 步长为2隔位取:", s[::2]) # aceg
# 6. 负数索引(从右计数)
print("6. 最后1个字符:", s[-1]) # g
print("6. 倒数第3到倒数第1:", s[-3:-1]) # ef
# 7. 负步长:反转字符串
print("7. 整体反转字符串:", s[::-1]) # gfedcba
# 8. 倒序区间截取
print("8. 倒序区间截取[5:0:-1]:", s[5:0:-1]) # fedcb
# 9. 跳过前n个字符
print("9. 跳过前3个字符:", s[3:]) # defg
# 10. 截取最后n个字符
print("10. 截取最后3个字符:", s[-3:]) # efg
列表
append() 末尾追加单个元素
lst = [1,2,3] lst.append(4) print(lst) # [1, 2, 3, 4]
insert() 指定下标插入元素
lst = [1,3,4] lst.insert(1,2) print(lst) # [1, 2, 3, 4]
extend() 合并另一个列表
lst1 = [1,2] lst2 = [3,4] lst1.extend(lst2) print(lst1) # [1, 2, 3, 4]
pop() 按下标删除,返回被删元素
lst = [1,2,3] num = lst.pop(1) print(num) # 2 print(lst) # [1, 3]
remove() 按值删除第一个匹配元素
lst = [1,2,1,3] lst.remove(1) print(lst) # [2, 1, 3]
clear() 清空整个列表
lst = [1,2,3] lst.clear() print(lst) # []
index() 返回元素首次出现下标
lst = [2,5,8] print(lst.index(5)) # 1
count() 统计元素出现次数
lst = [1,1,2,2,2] print(lst.count(2)) # 3
sort() 原地升序排序
lst = [5,2,9,1] lst.sort() print(lst) # [1, 2, 5, 9]
reverse() 原地反转列表
lst = [1,2,3,4] lst.reverse() print(lst) # [4, 3, 2, 1]
列表切片(通用取值)
lst = [10,20,30,40,50] print(lst[2:4]) # [30, 40] print(lst[::-1]) # [50, 40, 30, 20, 10]
字符串 & 列表 通用操作
1. len() 获取长度
s = "python" lst = [1,2,3] print(len(s)) # 6 print(len(lst)) # 3
2. in 判断包含关系
print("py" in "python") # true
print(2 in [1,2,3]) # true
3. + 拼接
print("a"+"b") # ab
print([1]+[2,3]) # [1, 2, 3]
重点记忆
字符串不可变:所有方法返回新字符串,原字符串不变;
列表可变:增删改排序大多是原地修改,不返回新列表。
到此这篇关于一文详细说说python中常用的字符串和数组方法(面试官常问)的文章就介绍到这了,更多相关python常用字符串和数组方法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论