1.字符串
2.列表
一、字符串
1.字符串相关操作
1.字符串的拼接
str1 = "你"
str2 = "好"
res = str1 + str2
2.字符串的重复
# 字符串 str1 重复打印 3次
res = str1 * 3
3.字符串的跨行拼接
strvar = "abcd" \
"efjh"
4.字符串的索引
# 正向 0 1 2 3 ...
# 逆向 ... -4 -3 -2 -1
strvar[0]
strvar[-1]
5.切片(截取)
# 1.连续切片
strvar[开始索引:]
strvar[:结束索引]
strvar[开始索引:结束索引]
# 2.间断切片
# 从左往右的正向截取
strvar[开始索引:结束索引:间隔值]
# 从右往左的逆向截取
strvar[开始索引:结束索引:-间隔值]
# 3.复制一份字符串
strvar[::]
strvar[:]
# 4.例子:
strvar = "本来无一物,何处惹尘埃。"
res = strvar[::2]
print(res) #结果: 本无物何惹埃
2.字符串格式化format
{} 占位符
1.顺序传参
strvar = "{}天气真好,心情{}".format("今天","愉悦")
2.索引传参
strvar = "{1}天气真好,心情{0}".format("今天","愉悦")
3.关键字传参
strvar = "{node1}天气真好,心情{node2}".format(node1="今天" , node2="愉悦")
4.容器数据类型传参
# 1.列表、元组
strvar = "{0[1]}{1[0]}".format([1,2,3] , (4,5,6))
# 2.列表、元组 关键字
strvar = "{group2[1]}{group1[0]}".format(group1=[1,2,3] , group2(4,5,6))
# 字典 取值时,字典的建不需要加引号,不能使用负号
strvar = "{group1[a2]}{group2[b1]}".format(group1={"a1":1,"a2":2} , group2={"b1":3,"b2":4})
5.format 填充字符的使用
^ 居中
> 居右
< 居左
{who:*^10}
who 关键字
* 填充的字符
^ 填充的方向
10 填充的长度(原字符串长度+填充字符的长度)
6.进制转换等特殊符号的使用
# 可以配合 ^ > < 使用,与%占位符用法相同
{:d} 整型占位符
{:f} 浮点型占位符
{:s} 字符串占位符
{:,} 金钱占位符
例子:
i = 1
while i <= 9:
j = 1
while j <= i:
print("{:d}*{:d}={:2d} ".format(i,j,i*j),end="")
j += 1
print()
i += 1
3.字符串相关函数
函数 | 含义 |
---|---|
capitalize() | 首字母大写,其余小写 |
title() | 每个单词的首字母大写,其余小写 |
upper() | 所有字母大写 |
lower() | 所有字母大写 |
swapcase() | 大小写交换 |
count('a') | 统计某个字符串中某个元素的数量 |
find('a') | 查找某个字符第一次出现的位置,找不到会打印 -1 |
find('b',3,7) | 可以指定查找范围 3~6(取不到7),与index用法上相同 |
startswith('a') | 检测是否以某个字符开头 |
endswith('b') | 检测是否以某个字符结尾 |
split(' ',次数) | 以某字符进行分割,把字符串变列表,可以指定分割的次数 |
join() | 拼接,列表拼接为字符串 ,res = "+".join("lst") |
replace() | 替换字符, replace("原","新",次数) |
isdecimal | 检测是否为纯数字 |
len() | 字符串长度 |
strip() | 去掉字符两边空白符,rstrip() 右,lstrip() 左,可以指定想去掉的字符 |
center(10,"字符") | 填充,居中(默认是空格),可指定任意字符填充 |
二、列表
1.列表相关操作
拼接、重复、获取、修改、切片,与字符串的相关操作相同
删除
# 可以指定删除的范围
lst = [1,2,3,4,5,6]
del lst[1:5:2]
print(lst)
2.列表的相关函数
1.增
append() 在末尾添加
insert() 在指定的索引前进行添加
extend() 迭代追加所有元素
# append()
lst.append("a")
# insert()
lst.inert(1,"b")
# extend()
lst = [1,2,3,4]
dic = {"a":1,"b":2}
lst.extend(dic)
2.删
pop() 默认删除最后一个元素
remove("a") 通过值来删除
clear() 清空列表
3.其他
index() 获取某个值在列表中的索引
count() 计算某个元素出现的次数 (没有开始和结束下标的)
sort() 排序,默认是右小到大
reverse() 列表反转操作
# sort()
1.对字母进行排序,按照Ascii编码的大小
lst = ["kobe","oneal","james","dengken","jordon"]
lst.sort()
print(lst)
2.汉字可以进行排序,但无规律
5.浅拷贝与深拷贝
(1).为什么列表要进行拷贝
因为如果两个变量同时等于一个列表,那么这两个变量所指定的id位置是一致的,当一个变量发生变化,则另一个也会发生变化,为了让两个变量独立,就用到了拷贝。
(2).浅拷贝
浅拷贝只能拷贝一级容器的所有元素,变成独立的副本
import copy #导入模块
lst1 = {1,2,3,4}
# 方法一 copy模块(文件)下的同名方法copy
lst2 = copy.copy(lst1)
# 方法二 只能针对于列表进行拷贝
lst2 = lst1.copy()
(3).深拷贝
深拷贝可以拷贝所有层级容器的所有元素,全部变成独立的副本
# copy.deepcopy()
import copy
lst1 = [1,2,3,[5,6,7]]
lst2 = copy.deepcopy(lst1)