06.字符串、列表


01.字符串编码
02.字符串常见操作
03.列表
04.列表的相关操作

01.字符串编码

字符串编码,本质上就是二进制数据与语言文字的一一对应关系
在这里插入图片描述

1.2 Unicode

Unicode:所有字符都是2个字节。
好处:字符与数字之间转换速度更快一些。
坏处:占用空间大

1.3 UTF-8

UTF-8:精准,对不同的字符用不同的长度表示
优点:节省空间
缺点:字符与数字的转换速度较慢,每次都需要计算字符要用多少个字节来表示。

1.4 字符串编码转换

1.编码 encode()

将其他编码的字符串转换成Unicode编码。

2.解码 decode()

将Unicode编码转换成其他编码的字符串。

a = 'hello'
print(a,type(a))   #str,字符串是以字符为单位进行处理

在这里插入图片描述

a = 'hello'
print(a,type(a))   #str,字符串是以字符为单位进行处理
a1 = a.encode()        #编码
print("编码后:",a1)
print(type(a1))      #bytes,以字节为单位进行处理的

a2 = a.decode()      #解码
print(a2,type(a2))
#注意:对于bytes,只需要知道它跟字符串类型之间的相互转换

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

st = "这里是六星"
st1 = st.encode(""utf-8)
print(st1,type(st1))

在这里插入图片描述

st2 = st1.decode("utf-8")
print(st2,type(st2))

在这里插入图片描述

02.字符串常见操作

字符串运算符
在这里插入图片描述

2.1 + 字符串拼接

print(10 + 10)      #20,整型相加,+是算数运算符
print("10" + "10")  #1010,字符串相加,+是字符串拼接
name1 = "星星"
name2 = "点灯"
print(name1 + name2)
print(name1 , name2)
print(name1 , name2,sep = "")

在这里插入图片描述

2.2 * 重复输出

print("好好学习,天天向上\n"*5)
#注意:需要输出多少次,*后面就写多少

在这里插入图片描述

2.2 成员运算符

作用:检查字符串中是否包含了某个子字符串(即某个字符或多个字符)
in: 如果包含的话,返回True,不包含返回Flase
not in :如果不包含的话,返回True,包含返回Flase

name = "bingbing"
print('b' in name)
print('a' in name)
print('b' not in name)
print('a' not in name)
print('bin' in name)
print('binb' in name)

在这里插入图片描述

name = "冰冰"
print('six' in name)
print('冰冰' in name)
print('冰水' in name)
print('冰水' not in name)

在这里插入图片描述

2.3 下标

下标/索引
作用:通过下标能够快速找到对应的数据
Python中下标从0开始
写法:字符串名[下标值]
注意:从右往左数,下标是从-1开始,-1,-2,-3…

name = "abcdefg"
#从左往右数,下标从0开始
print(name[0])
print(name[1])
print(name[2])
print(name[3])
print(name[4])
print(name[5])
print(name[6])

在这里插入图片描述

name = "abcdefg"
#从左往右数,下标从0开始
print(name[0])
print(name[1])
print(name[2])
print(name[3])
print(name[4])
print(name[5])
print(name[6])
print(name[7]) #报错,取值的时候不要超出下标范围

在这里插入图片描述

name = "abcdefg"
#从左往右数,下标从0开始
# print(name[0])
# print(name[1])
# print(name[2])
# print(name[3])
# print(name[4])
# print(name[5])
# print(name[6])
# print(name[7]) #报错,取值的时候不要超出下标范围
#从右往左数,下标是从-1开始,-1,-2,-3...
print(name[-1])
print(name[-2])
print(name[-3])
print(name[-4])
print(name[-5])
print(name[-6])
print(name[-7])
print(name[-8])  #报错,超出范围

在这里插入图片描述

2.4 切片

切片:指对操作的对象截取其中一部分的操作
语法:[起始位置:结束位置:步长]
包前不包后原则 即从起始位置开始,到结束位置的前一位结束(不包括结束位置本身)
步长表示选取间隔,不写步长则默认是1
步长的绝对值大小决定切取数据间隔,正负号决定切取方向。

str = "abcdefghijk"
#从左往右
print(str[0:4])
print(str[3:]) # 下标为3之后的全部截取到
print(str[:7]) # 下标为7之前的全部截取到,不包含7

在这里插入图片描述

str = "abcdefghijk"
#从左往右
print(str[0:4])
print(str[3:]) # 下标为3之后的全部截取到
print(str[:7]) # 下标为7之前的全部截取到,不包含7
#从右往左
print(str[-1:]) #k
print(str[:-1]) #abcdefghij
print(str[-1:-5]) #
#步长:表示选取间隔,不写步长则默认是1,正负号决定切取方向。
#正数表示从左往右取值,负数表示从右往左取值。
print(str[-1::-1]) #kjihgfedcba 从右往左取值
print(str[-1:-5:-1]) #kjih
print(str[0:7:2]) #aceg
print(str[0:7:3]) #adg

在这里插入图片描述

3.字符串常见操作

在这里插入图片描述

3.1查找

1.find
find:检测某个子字符串是否包含在字符串中,如果在就返回这个字符串开始位置的下标,否则就返回-1
find(子字符串,开始位置下标,结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串中查找

name = 'bingbing'
print(name.find('i')) #1 ---第一个i的下标为1
print(name.find('bing')) #0 ---检测到第一个bing,b的下标为0
print(name.find('b',3)) #4
print(name.find('b',5)) # -1 超出范围,不包含返回-1
print(name.find('b',3,5)) # 4在下标3-5位置范围内查找
#包前不包后
print(name.find('b',3,4)) #-1

在这里插入图片描述

3.2.index()

index():检测某个子字符串是否包含在字符串中,如果在就返回这个字符串开始位置的下标,否则就会报错
index(子字符串,开始位置下标,结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串中查找

name = '天生我才必有用'
print(name.index('生')) #1
# print(name.index('生',2)) #报错,从下标2开始找,没有找到
print(name.index('生',1,3)) #1
#同样遵循包前不包后原则
#和find的区别:find没找到,返回-1;index没找到就会报错

在这里插入图片描述

3.count()
count():返回某个字符串在整个字符串中出现的次数,没有就返回0
count(子字符串,开始位置下标,结束位置下标)
注意:开始和结束位置下标可以省略,表示在整个字符串中查找

name = 'bingbing'
print(name.count('a'))
print(name.count('b'))
print(name.count('b',1))
print(name.count('b',1,3))
print(name.count('b',1,4))
print(name.count('b',1,5)) #包前不包后

在这里插入图片描述
在这里插入图片描述

3.3判断

1.startwith()
starwith():是否以某个子字符串开头,是的话返回True,不是的话返回Flase,如果设置开始和结束位置,则在指定范围内检查
starwith(子字符串,开始位置下标,结束位置下标)

st = 'bIngBinG'
print(st.startswith('b'))
print(st.startswith('a'))
print(st.startswith('b',0,1))
print(st.startswith('b',3,6))

在这里插入图片描述

2.endswith()
endswith():是否以某个子字符串结尾,是的话返回True,不是的话返回Flase,如果设置开始和结束位置,则在指定范围内检查
endswith(子字符串,开始位置下标,结束位置下标)

st = 'bIngBinG'
print(st.endswith('b'))
print(st.endswith('G'))
print(st.endswith('b',0,1))
print(st.endswith('G',3,7))
print(st.endswith('G',3,8))

在这里插入图片描述

3.isupper()
isupper():检测字符串中所有的字母是否都为大写,是的话返回True

3.2 修改元素
1.replace()
replace():替换
replace(旧内容,新内容,替换次数)
注意:替换次数可以省略,默认全部替换

name = '好好学习,天天向上'
print(name.replace('天','日'))
print(name.replace('天','日',1))

在这里插入图片描述

2.split()
split():指定分隔符来切字符串

name = '好好学习,天天向上'
print(name.split(',')) #以列表的形式返回
#如果字符串中不包含分割内容,旧不进行分割,会作为一个整体
print(name.split(',')) #以列表的形式返回
print(name.split(':'))
print(name.split('天'))
print(name.split('天',1)) #指定只分割一次

在这里插入图片描述

3.capitalize()
capitalize():第一个字符大写,其他都小写

name = 'bingbing'
print(name.capitalize())

在这里插入图片描述

4.lower()
lower():大写字母转为小写

5.upper()
upper():小写字母转为大写

st = 'bIngBinG'
print(st.lower())
print(st.upper())

在这里插入图片描述

03.列表

1.定义

是处理一组有序项目的数据结构。

2.格式

列表名 = [元素1,元素2,元素3,元素4…]
注意
(1)列表的所有元素放在一对中括号[]中,并使用逗号分隔开。
(2)一个列表中的数据类型可以各不相同。

li = [1,2,'a',4]
print(li,type(li))
#列表也可以进行切片操作
print(li[0:3])
#列表是可迭代对象,可以for循环遍历取值
for i in li:
print(i)

在这里插入图片描述

04.列表的相关操作

在这里插入图片描述

4.1.添加元素

append() extend() insert()

li = ['one','two','three']
# li.append('four') #append整体添加 ['one', 'two', 'three', 'four']
# li.extend('four') #extend分散添加,将另外一个类型中的元素逐一添加 ['one', 'two', 'three', 'f', 'o', 'u', 'r']
# li.insert(3, "four") #在指定位置插入元素 ['one', 'two', 'three', 'four']
# li.insert(0, "four") #指定位置如果有元素,原有元素就会后移 ['four', 'one', 'two', 'three']
# li.insert("four") #报错,没有指定下标
print(li)
li = [1,2,3]
# li.append(4) #append整体添加 [1, 2, 3, 4]
# li.extend(4) #报错 'int' object is not iterable
# li.insert(3, 4) #在指定位置插入元素 [1, 2, 3, 4]
# li.insert(0, "four") #['four', 1, 2, 3]
print(li)

4.2.修改元素

直接通过下标就可以进行修改

li = [1,2,3]
li[1] = 'a' #[1, 'a', 3]
print(li)

4.3.查找元素

in:判断指定元素是否存在列表中,如果存在就返回True,不存在就返回False
not in:判断指定元素是否存在列表中,如果不存在就返回True,存在就返回False

li = ['a','b','c','d']
print('a' in li)
print('a' not in li)
print('e' in li)

在这里插入图片描述

name_list = ['bingbing','susu','ziyi']

name = input('请输入您的昵称')
#判断昵称是否已经存在
if name in name_list:
    print(f'您输入的昵称{name}已经存在')
#如果昵称不存在
else:
    print(f'昵称{name}已经被使用,昵称不存在')
    #把昵称新增到列表
    name_list.append(name)
    print(name_list)

在这里插入图片描述
在这里插入图片描述

name_list = ['bingbing','susu','ziyi']

while True:
    name = input('请输入您的昵称')
    #判断昵称是否已经存在
    if name in name_list:
        print(f'您输入的昵称{name}已经存在')
    #如果昵称不存在
    else:
        print(f'昵称{name}已经被使用,昵称不存在')
        #把昵称新增到列表
        name_list.append(name)
        print(name_list)
        break

在这里插入图片描述

index:返回指定数据所在位置的下标,如果查找的数据不存在就会报错
count:统计指定数据在当前列表出现的次数
跟字符串中的用法相同

4.4 删除元素

del

li = ['a','b','c','d']
del li #删除列表 
print(li)  #列表已删除,故报错

在这里插入图片描述

li = ['a','b','c','d']
# del li #删除列表
del li[2] #根据下标删除 ['a', 'b', 'd']
print(li)

pop
pop:删除指定下标的数据,python3版本默认删除最后一个元素

li = ['a','b','c','d']
li.pop() #['a', 'b', 'c']
li.pop(2) #不能指定元素删除,只能根据下标进行删除,下标不能超出范围 ['a', 'b']
print(li)

remove
remove:根据元素的值进行删除

li = ['a','b','c','d','b']
li.remove('a') #['b', 'c', 'd']
li.remove('b') #['c', 'd', 'b'] 默认删除最开始出现的指定元素
print(li)

4.5.排序

sort
sort:将列表按特定顺序重新排列,默认从小到大

li = [1,4,67,3,4,64]
li.sort()
print(li) #[1, 3, 4, 4, 64, 67]

reverse
reverse:倒序,将列表倒置(反过来)

li = [1,4,67,3,4,64]
li.sort()
li.reverse() #[67, 64, 4, 4, 3, 1]
print(li) #[1, 3, 4, 4, 64, 67]

4.6.列表推导式

格式一:[表达式 for 变量 in 列表]
注意:in后面不仅可以放列表,还可以放range()、可迭代对象

li = [1,2,3,4,5,6]
[print(i) for i in li] #前面的i是表达式

在这里插入图片描述

li = [1,2,3,4,5,6]
[print(i*10) for i in li] #前面的i是表达式

在这里插入图片描述

li = []
for i in range(1,6):
    print(i)
    li.append(i)
print(li)
li = []
[li.append(i) for i in range(1,6)]
print(li)

在这里插入图片描述

格式二:[表达式 for 变量 in 列表 if 条件]
把奇数放进列表

li = []
for i in range(1,11):
    if i % 2 == 1:
    li.append(i)
print(li)

li2 = []
[li2.append(i) for i in range(1,11) if i % 2 == 1]
print(li2)

li3 = []
[li3.append(i) for i in li3 if i % 2 == 1]
print(li3)

在这里插入图片描述

4.7.列表嵌套

含义:一个礼表里面又有一个列表

li = [1,2,3,[4,5,6]] #[4, 5, 6]是里面的列表
print(li[3]) #取出里面的列表 [4, 5, 6]
print(li[3][1]) #取出内列表中的下标为1的元素 5

学习地址:https://www.bilibili.com/video/BV1FS421K7Hs/?p=16&spm_id_from=pageDriver&vd_source=279585e3656eb1829d1f31997be26270

相关推荐

  1. 07 React 添加列表

    2024-03-29 16:46:02       34 阅读
  2. python怎样把形似列表字符串转换为列表

    2024-03-29 16:46:02       52 阅读
  3. 列表如何查找索引与字符串

    2024-03-29 16:46:02       42 阅读
  4. Python 中字符串列表的排序

    2024-03-29 16:46:02       37 阅读
  5. python把一个整数列表转为字符串

    2024-03-29 16:46:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 16:46:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 16:46:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 16:46:02       87 阅读
  4. Python语言-面向对象

    2024-03-29 16:46:02       96 阅读

热门阅读

  1. Sql中如何添加数据

    2024-03-29 16:46:02       37 阅读
  2. Python获取当前服务器的公网IP

    2024-03-29 16:46:02       42 阅读
  3. 【[蓝桥杯 2013 省 B] 带分数】

    2024-03-29 16:46:02       41 阅读
  4. Spring 的DI 依赖注入

    2024-03-29 16:46:02       47 阅读
  5. Linux Crontab定时表教学大全(一看就会!)

    2024-03-29 16:46:02       48 阅读
  6. 如何避免过度设计

    2024-03-29 16:46:02       53 阅读
  7. SparkSQL异常数据清洗API

    2024-03-29 16:46:02       48 阅读