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.面向对象: 华山派-- ...
随机推荐
- Java GC算法
转自:http://blog.csdn.net/heyutao007/article/details/38151581 1.JVM内存组成结构 JVM内存结构由堆.栈.本地方法栈.方法区等部分组成,结 ...
- 一步一步学Vue(九) 路由元数据
一步一步学Vue(九):https://www.cnblogs.com/Johnzhang/p/7260888.html
- SCAU大二上Java综合性实验
一.题目要求 实验内容: 1. 已经提供的原始数据:班级成绩单文件 该文件为文本文件,存储某个班的所有学生某门课程的成绩. 例如:2012级计算机科学与技术8班-面向对象程序设计.txt 文件中每行存 ...
- rope(平衡二叉树)
题目描述: 链接:https://www.nowcoder.com/acm/contest/141/C来源:牛客网 Eddy likes to play cards game since there ...
- go中字符类型的使用小结
示例 // 字符类型的用法 package main import ( "fmt" "unsafe" ) func main() { // 未指定类型并赋值字符 ...
- js转换成布尔类型boolean
/** * js转换成布尔值 * a.转换方法:Boolean(var) * b.数字转换成布尔,除了0与NaN,其余都是true * c.字符串转换成布尔,除了空串"",其余都是 ...
- OkHttp的使用
Download OkHttp3 implementation 'com.squareup.okhttp3:okhttp:3.10.0' 1.1. 异步GET请求 -new OkHttpClient; ...
- crontab+selenium不能定时执行测试的原因
上一篇我提到用无界面selenium实现网页的自动签到.本来测试好好 的没问题,但是加进crontab定时任务却一点动静页没有,后来发现是浏览器的显示问题,自动任务要这样写: 12 3 * * * e ...
- java--split,index,StringTokenizer比较
import java.util.StringTokenizer; public class SplitDemo { //jdk8 public static void main(String[] a ...
- FPN在faster_rcnn中实现细节代码说明
代码参考自:https://github.com/DetectionTeamUCAS/FPN_Tensorflow 主要分析fpn多层金字塔结构的输出如何进行预测. FPN金字塔结构插入在faster ...