python基础【第九篇】
补充知识
1.字符串方法的补充
s = str()
s.format() # 格式化输出
"连接符".join("连接的对象") # 拼接
s.find() # 字符串的查找
s.capitalize() # 首字母大写
s.title() # 单词的首字母大写
s.index("e") # 查找某个对象的索引值
s.center(20) # 居中显示字符串
s.encode("utf-8") # 编码
s.swapcase() # 字符串大小写互换
2.列表方法的补充
lst = list()
lst.sort() # 列表的排序,默认为升序
lst.reverse() # 列表的反转
lst.sort(reverse=True) #列表排序,降序排列
print(lst)
3.字典方法的补充
dic = dict()
dic.fromkeys("参数一","参数二")
# 批量创建键值对和字典 参数1:可迭代对象,参数2:创建时公用这个值
4.面试时经常遇到的坑
# 面试题1
列表
lst2 = [1,2,[]]
lst3 = lst2 * 3
print(lst2)
print(lst3) # []公用一个内存空间地址
lst3[-1].append(5)
print(lst3)
# lst3[]里都加入了5,因为[]公用了一个内存空间的地址
元组
tu1 = (1,2,[])
tu2 = tu1 * 3
tu2[-1].append(10)
print(tu2)
同上[]公用了一个内存空间的地址
字典
dic = {}
dic = dic.fromkeys("abc",[])
print(dic)
dic["a"] = "8"
print(dic)
将字典里的键"a"对应的元素修改为了8,不影响后续列表
# 面试题2
循环删除元素
1.for循环自己维护了计数
2.列表有个自动补位的效果
lst = [1,2,3,4,5,6,7]
for i in range(len(lst)):
if i % 2 == 1:
lst.pop(i)
print(lst)
for i in range(len(lst)-1,-1,-1):
if i % 2 ==1:
lst.pop(i)
print(lst)
利用for循环,与列表索引进行循环删除列表元素的时候,需要注意列表的自动补位机制
由于自动补位机制的影响,删除时会存在索引超出的情况,因此可以选择倒序删除
练习题1
删除列表元素中开头为周的数据
lst = ["周星驰","周芷若","马冬梅","大润发","周杰伦","张杰"]
lst1 = lst[:]
for i in lst1:
if i.startswith("周"):
lst.remove(i)
print(lst)
字典和集合循环删除的坑:
dic = {"key":1,"key2":2,"key3":4} # 大小就是字典的总长度
for i in dic:
dic[i] = i
print(dic)
字典和集合在循环的时候不能改变原来的大小
dic = {"key":1,"key2":2,"key3":4}
dic1 = dic.copy()
for i in dic1:
del dic[i]
print(dic)
5.编码进阶
s = "你好"
s1 = s.encode("utf-8")
s2 = s1.decode("utf-8")
print(s2)
print(s.encode("gbk"))
用什么编码就用什么进行解码
python基础【第九篇】的更多相关文章
- python基础-第九篇-9.1初了解Python线程、进程、协程
了解相关概念之前,我们先来看一张图 进程: 优点:同时利用多个cpu,能够同时进行多个操作 缺点:耗费资源(重新开辟内存空间) 线程: 优点:共享内存,IO操作时候,创造并发操作 缺点:抢占资源 通过 ...
- python基础-第九篇-9.2线程与多线程
单线程 import time beginTime = time.time() for a in range(10): print(a) time.sleep(1) shijian = time.ti ...
- python基础-第九篇-9.3线程池
简单版 import queue import threading class ThreadPool(object): def __init__(self, max_num=20): self.que ...
- Python 基础学习篇
注:技术尚浅,时间匆忙,如有错误或者不当之处值得商榷的,请留言,吾必思而改之. 第一篇 :Python基础- 安装/变量/输入/及循环语句使用 第二篇: Python基础- 常用数据类型 第三篇: ...
- python【第九篇】多线程、多进程
内容提要 paramiko模块 进程.与线程区别 python GIL全局解释器锁 多线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生 ...
- [Python笔记]第九篇:re正则表达式
一.正则表达式基础 1.正则表达式介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分 ...
- python基础-第二篇-基本数据类型
一.运算符 1.算数运算: 算数运算符相信大家都不陌生吧,尤其是加减乘除,好!那我就带着大家看看最后三个,这三个到底是干什么玩意的? %,取两数相除的余数,看图: **,x的多少次幂,看图: //,取 ...
- Python 基础总结篇
变量及数据类型 Numbers数字分为:int整型,long长整型,float浮点型,complex复数 String字符串由数字.字母.下划线组成的一串字符,用于表示文本的数据类型 bool布尔型: ...
- python基础总结篇——使用Mysql
python操作Mysql,很方便,使用的MySQLdb的库,基本的操作如下: 查询: try: conn = MySQLdb.connect(host=self.ip, user=self.user ...
- Python基础-函数篇
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 函数与函数式编程 1.面向对象: 华山派-- ...
随机推荐
- QT pro文件的一种通用配置
#设置UI文件目录 UI_DIR = ./ui CONFIG(debug, debug|release) { #设置debug配置下编译生成文件的路径 TARGET = $$join(TARGET ...
- 转 Page Object模式
Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...
- vue-router(路由)详细教程
vue-router(路由)详细教程:https://blog.csdn.net/wulala_hei/article/details/80488727 vue路由组件传参-页面通信:https:// ...
- A Bite Of React(2) Component, Props and State
component component:用户自己定义的元素 const element = <Welcome name="Sara" />; class Welcome ...
- 43.和为S的连续正数序列
题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多 ...
- JS设置首字母大写算法
返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写. 像'the'和'of'这样的连接符同理. function titleCase(str) { //把字符串所有的字母变为小写,并根据空 ...
- 树形查询sql
DROP FUNCTION IF EXISTS PersonName; CREATE FUNCTION PersonName(parent_id smallint) RETURNS VARCHAR(2 ...
- 使用egg.js和egg-sequelize连接mysql
1.通过 egg-init 初始化一个项目: egg-init --type=simple --dir=sequelize-projectcd sequelize-projectnpm i 2.安装并 ...
- word--->pdf资料转载..
https://blog.csdn.net/dsn727455218/article/details/80667927
- js调用浏览器
定义和用法 open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口. 语法 window.open(URL,name,specs,replace) 参数 说明 URL 可选.打开指定的页面 ...