一木.溪桥学Python-05: 字符串str、字节bytes、列表list、sort()、sorted()
一木.溪桥 在Logic Education跟Amy学Python
12期:Python基础课
一木.溪桥学Python-05: 字符串str、字节bytes、列表list、sort()、sorted()
日期:2020年12月23日
学习目标:
- 字符串:str
- 字节:bytes
- 列表:list
学习内容:
字符串:str
字符串常见操作 ( 熟悉 )
S.find(sub) --> 返回该元素最小的索引
S.index(sub) --> 返回该元素最小的索引
S.replace(old, new[, count]) --> 替换
S.split(sep=None) --> 以 sep 来分割字符串 , 并返回列表。 sep 默认为 None, 分割默认为空格
S.startswith(prefix[, start[, end]]) --> 判断字符串是否以前缀开始,返回为 bool 值。
S.endswith(suffix[, start[, end]]) --> 判断字符串是否以尾缀结束,返回为 bool 值。
S.lower() --> 将字符串全部转为小写
S.upper() --> 将字符串全部转为大写
S.strip([chars]) --> 默认去掉字符串左右的空格
S.isalpha() --> 判断字符串是否全为字母,返回的是 bool 值
S.isdigit() --> 判断字符串是否全为数字,返回的是 bool 值
S.isalnum() --> 判断字符串是否全为数字或者字母,不存在特殊字符,返回的是 bool 值
S.join(iterable) --> 将序列中的元素以指定的字符连接生成一个新的字符串
- S.find(sub) -->返回的是sub的最小索引,如果S中没有sub值则返回-1.
s = "hello everyone !"print(s.find("e")) # 打印e的最小索引,返回1print(s.find("E")) # 没有E,返回-1,不报错
- S.index(sub) -->返回的是sub的最小索引,如果S中没有sub值则报错.
s = "hello everyone !"print(s.index("e")) # 打印e的最小索引,返回1print(s.index("E")) # 没有E,报错
- S.replace(old, new[, count]) --> 替换 replace(self, old, new, count=None)
s = "hello everyone !"# print(s.replace("e","A")) # 默认替换全部print(s.replace("e","A",2)) # 指定替换次数为2;hAllo Averyone !
- S.split(sep=None) --> 以 sep 来分割字符串 , 并返回列表。 sep 默认为 None, 分割默认为空格
s = "hello everyone !"print(s.split(" ")) # 用空格分割字符串S,返回为列表:['hello', 'everyone', '!']
- S.startswith(prefix[, start[, end]]) --> 判断字符串是否以前缀开始,返回为 bool 值。
s = "hello everyone !"print(s.startswith("h")) # 判断字符串S是否以h开始,返回为bool:True
- S.endswith(suffix[, start[, end]]) --> 判断字符串是否以尾缀结束,返回为 bool 值。
s = "hello everyone !"print(s.endswith("!")) # 判断字符串S是否以!结束,返回为bool:True
- S.lower() --> 将字符串全部转为小写
s = "hello everyone !"s1 = s.upper() # 字符串s转为大写:HELLO EVERYONE !s2 = s1.lower() # 字符串s1转为小写:hello everyone !print(s2) print(id(s)) # id(s):2677845944192print(id(s2)) # id(s):2677845944408
- S.upper() --> 将字符串全部转为大写
s = "hello everyone !"print(s.upper()) # 字符串S转为大写:HELLO EVERYONE !
- S.strip([chars]) --> 默认去掉字符串左右的空格
s = " hello everyone ! "print(s.strip()) # 去掉字符串S首尾的空格:hello everyone !print(s.replace(" ", "*")) # 也可用replace功能替换想替换的:**hello*everyone*!**
- S.isalpha() --> 判断字符串是否全为字母,返回的是 bool 值
s = "helloeveryone"print(s.isalpha()) # :True
- S.isdigit() --> 判断字符串是否全为数字,返回的是 bool 值
s = "145632f"print(s.isdigit()) # :False
- S.isalnum() --> 判断字符串是否全为数字或者字母,不存在特殊字符,返回的是 bool 值
s = "145d"print(s.isalnum()) # :True
s = "145d!"print(s.isalnum()) # :False
- S.join(iterable) --> 将序列中的元素以指定的字符连接生成一个新的字符串
s = "hello everyone !"print("*".join(s)) # :h*e*l*l*o* *e*v*e*r*y*o*n*e* *!
join()
- Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
- join()方法语法:str.join(sequence)
- sequence – 要连接的元素序列。
- 返回通过指定字符连接序列中元素后生成的新字符串。
s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))
Run:
r-u-n-o-o-b
runoob
字节:bytes
- 字节介绍 ( 掌握 )
在 Python3 以后,字符串 和 bytes 类型彻底分开了。字符串 是以 字符 为单位进行处
理的,bytes 类型是以 字节 为单位处理的。
bytes 数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样,也是
不可变的序列对象。
Python3 中,bytes 通常用于网络数据传输、二进制图片和文件的保存等等。 - 字节创建 ( 掌握 )
可以通过调用 bytes() 生成 bytes 实例,其值形式为 b’xxxxx’ ,对于同一个字符串如
果采用不同的编码方式生成 bytes 对象,就会形成不同的值。
bt_1 = b"hello everyone !"print(bt_1) # b'hello everyone !'print(type(bt_1)) # <class 'bytes'>
###
bt_2 = bytes("hello everyone !", encoding="utf_8")print(bt_2) # b'hello everyone !'print(type(bt_2)) # <class 'bytes'>
- 字节与字符串转换
bytes to str --> .decode() 解码
str to bytes --> .encode() 编码
bt_2 = bytes("hello", encoding="utf")s = bt_2.decode()print(s) # helloprint(type(s)) # <class 'str'>bt_3 = s.encode()print(bt_3) # b'hello'print(type(bt_3)) # <class 'bytes'>
列表:list
列表介绍 ( 掌握 )
列表是 Python 中最基本也是最常用的数据结构之一,它是一个 有序可重复的元素
集合。从数据结构角度看,Python 的列表是一个 可变长度 的顺序存储结构,每一
个位置存放的都是对象的指针。
我们可对列表进行 修改、切片、追加、删除、嵌套、迭代、成员判断 等操作。
- 列表创建 ( 掌握 )
创建一个列表,只要把 逗号 分隔的 不同的数据元素 使用 方括号 括起来即可。
li = ["good",2,3,4,2,6.6]print(li) # ['good', 2, 3, 4, 2, 6.6] 列表中的元素类型任意,元素可重复。print(type(li)) # <class 'list'>
li = list("hello")print(li) # ['h', 'e', 'l', 'l', 'o'] list(iterable) 可迭代print(type(li)) # <class 'list'>
- 列表访问
列表 从0开始 为它的每一个元素顺序创建 下标索引,直到 总长度减一 。要访问
它的某个元素,以方括号加下标值的方式即可。
注意要确保索引不越界,一旦访问的 索引超过范围,会抛出异常。所以,一定要
记得最后一个元素的索引是 len(list)-1。
li = list("hellofarafaaaaaaaaaaahgjhkj")li_max = len(li) - 1print(li[li_max]) # 输出列表最后一个元素:j
- 修改列表内的元素 ( 掌握 )
直接 取出元素 进行 重新赋值
li = list("hello")li[1] = 'A'print(li) # 替换列表中元素['h', 'A', 'l', 'l', 'o']
- 删除列表内的元素 ( 掌握 )
直接 取出元素,再通过 del 语句 或者 list.remove() 或者 list.pop() 进行删除
li = list("hello")del (li[1])print(li) # 删除列表中元素['h', 'l', 'l', 'o']
li = list("hello")li.remove("e") #改变的是li本身,没有返回值print(li) # 删除列表中元素['h', 'l', 'l', 'o']
li = list("hello")li.pop() # 默认删除列表最后一个元素print(li) # ['h', 'l', 'l', 'o'
li = list("hello")li.pop(1) # 指定删除列表中index元素:索引为1print(li) # ['h', 'l', 'l', 'o']
- 列表的特殊操作
list可以相加(拼接),不能相* /和相减。
li_1 = list("hello")li_2 = list("everyone")print(li_1 + li_2) # ['h', 'e', 'l', 'l', 'o', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
li_1 = list("hello")for i in li_1: # 快速取出li_1中所有元素print(i)
"""
h
e
l
l
o
"""
- list的内置函数:len()、max()、min()
li = list("hello")print(len(li)) # 列表长度 5print(max(li)) # 列表中最大元素oprint(min(li)) # 列表中最小元素e
- llist 排序.sort()
li = list("hello")li.sort() # 调用.sort() 排序print(li) # ['e', 'h', 'l', 'l', 'o']
- llist 反转.reverse()
li = list("hello")li.reverse() # 调用.reverse() 反转print(li) # ['o', 'l', 'l', 'e', 'h']
- 列表的切片
切片模式:a[start:stop:step]
li = list("hello")print(li[1::1]) # ['e', 'l', 'l', 'o']
列表常见操作
- L.append(object) --> 在列表末尾添加新的对象
li = list("hello")li.append(list("everyone"))print(li) # ['h', 'e', 'l', 'l', 'o', ['e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']]
- L.count(object) --> 统计某个元素在列表中出现的次数
li = list("hello everyone !")li.count("e")print(li.count("e")) # 4
- L.extend(iterable) --> 用新列表扩展原来的列表
li = list("hello")li.extend("大家好!")print(li) # ['h', 'e', 'l', 'l', 'o', '大', '家', '好', '!']
- L.index(value ) --> 从列表中找出某个值第一个匹配项的索引位置
li = list("hello everyone")li.index("o")print(li.index("o")) # 4
- L.insert(index, object)–> 将对象插入列表
li = list("hello everyone")li.insert(3,"大家好!")print(li) # ['h', 'e', 'l', '大家好!', 'l', 'o', ' ', 'e', 'v', 'e', 'r', 'y', 'o', 'n', 'e']
- L.pop([index]) --> 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
li = list("hello")li.pop(3)print(li) # ['h', 'e', 'l', 'o']
- L.remove(value) --> 移除列表中某个值的第一个匹配项
li = list("hello")li.remove("e")print(li) # ['h', 'l', 'l', 'o']
- L.reverse() --> 反向列表中元素
li = list("hello")li.reverse() # 调用.reverse() 反向print(li) # ['o', 'l', 'l', 'e', 'h']
sort()函数
描述
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。语法
sort()方法语法:
list.sort(cmp=None, key=None, reverse=False)参数
cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。返回值
该方法没有返回值,但是会对列表的对象进行排序。L.sort(reverse=False) --> 对原列表进行排序
li = list("1234996789")li.sort(reverse=False) # 调用.sort() 排序,reverse=False升序。print(li) # ['1', '2', '3', '4', '6', '7', '8', '9', '9', '9']
sorted() 函数
描述
sorted() 函数对所有可迭代的对象进行排序操作。sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
- 语法
sorted 语法:
sorted(iterable, cmp=None, key=None, reverse=False)
参数说明:
iterable – 可迭代对象。
cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值
返回重新排序的列表。实例
以下实例展示了 sorted 的使用方法:
>>>a = [5,7,6,3,4,1,2]
>>> b = sorted(a) # 保留原列表
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 利用cmp函数
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> sorted(L, key=lambda x:x[1]) # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2]) # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]>>> sorted(students, key=lambda s: s[2], reverse=True) # 按降序
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>>
- L.copy() --> 复制列表
li = list("1234996789")li.copy()print(li.copy()) # ['1', '2', '3', '4', '9', '9', '6', '7', '8', '9']print(type(li.copy())) # <class 'list'>
- L.clear() --> 清空列表
li = list("1234996789")li.clear() print(li) # []
作业:
作业答案:…
一木.溪桥学Python-05: 字符串str、字节bytes、列表list、sort()、sorted()相关推荐
- 一木.溪桥学Python-03: Python 运算符
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-03: Python 运算符 日期:2020年12月18日 学习目标: 算术. ...
- 一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,complex,None,str, 转义字符
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-04: Python基础数据类型int ,float ,bool ,compl ...
- python bar函数循环_一木.溪桥学Python-08: for循环、function函数
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-08: fo ...
- 一木.溪桥学Python-10:函数闭包、装饰器、推导式
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-10:函数闭 ...
- 一木.溪桥学爬虫-04:requests模块
一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-04:requests模块.cookie.session 日期:2021年1月31日 学习 ...
- 一木.溪桥学Python-06:元组tuple、字典dict
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-06:元组tuple.字典dict 日期:2020年12月25日 学习目标: ...
- 一木.溪桥学Python-11:迭代器、生成器、面象对象class MyClass:、self 参数、 __init__() 方法、__str__() 方法
一木.溪桥 在Logic Education跟Amy学Python 逻辑教育 :https://logicedu.ke.qq.com 12期:Python基础课 一木.溪桥学Python-11:迭代器 ...
- 一木.溪桥学Python-02: 数据类型、标识符、语句与缩进、变量常量、输入input、sep=“ “、end=“\n“
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-02: 数据类型.标识符.语句与缩进.变量常量.输入input.sep=&qu ...
- 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()
一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-03:请求模块urllib. urllib.request.urllib.parse.ur ...
最新文章
- 为学Android,我看了这些书
- ASP.NET 实现Base64文件流下载PDF
- java excel 模板 替换_JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签...
- DataGridView 实现记录颜色间隔交替显示
- 99.6%屏占比 vivo NEX 3升级版入网:865+55W快充
- HDU 6090 Rikka with Graph 思维 公式
- 关于WP7上音乐播放的嫉妒恶心的一些规则和解决方案。
- 学维修电脑要多久_学古筝难吗?古筝要多久才能学会?
- 北京林业大学本科毕业论文答辩和论文选题PPT模板
- element-ui表格合并数据相同行
- 常见手机病毒学习总结
- 【硬件】在Windows PC端使用adb工具无线向电视机顶盒安装第三方软件(不需要ROOT,已解决)
- linux运维工程师 pdf下载,linux运维工程师命令.pdf
- 公证电子签名的法律可靠性分析
- 笨方法学python3怎么样_笨办法学Python3
- html计算圆周长,【实用性程序】弧微分计算圆周长
- NKOJ-Unknow 不死的 LYM
- 一度智信|想要提高店铺流量,商家需要了解这些引流渠道
- 第三章 Python基础知识
- U盘超级加密3000
热门文章
- Java Random
- 解决运行java application时提示Could not find the main class.Program will exit.问题
- 服装店软件收银功能提高经营效率?
- 计算机一级笔试2012,2012年计算机一级笔试试题B.doc
- Qt编写自定义控件53-自定义宽高下拉框
- memcached缓存 window下使用方法记录下。
- Faker 一个生成虚拟数据的Python模块
- 兄弟8400cdn耗材_兄弟DCP-L8400CDN驱动
- 计算机考研就业率,近三年研究生就业率TOP10专业!
- ART世界探险(4) - 数据传送指令和桶型移位器