Python 字符串&列表 的深入学习

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)

你可能感兴趣的:(Python 字符串&列表 的深入学习)