Python之freshman01
列表与元组、字典
1.列表list:["ele1","ele2","ele3","ele0"]
列表是一组任意类型的值,按照一定顺序组合而成的;通过偏移存取;可变长度、异构以及任意嵌套;可变的序列;对象引用的数组
2.元组tuple:("alex","韩顺平","金云龙")
只读的列表,两个方法index()、count();通过偏移存取;不可变序列;固定长度、异构、任意嵌套;对象引用的数组
与list相比:1.比列表操作速度快 2.对数据“写保护” 3.可用于字符串格式化中 4.可作为字典的key
切片:(取多个元素)
str = ["你好","世界","hello","world",1,2]
print(str[1:4] ) #截取下标1至4之间的数据,包括1不包括4
#['世界', 'hello', 'world']
print(str[1:-1]) #截取下标1至-1之间的数据,不包括-1
#['世界', 'hello', 'world', 1]
print(str[:1])
#['你好']#取下标0-1
print(str[1:]) #取下标1-完
#['世界', 'hello', 'world', 1, 2]
print(str[0::2]) #隔一取一
追加:append()
str=["alex","blue","sir"]
str.append("john")
print(str)
#['alex', 'blue', 'sir', 'john']
插入:insert()
str=["a","b","c","d","e"]
str.insert(1,"1前")#大于列表长度时插在最后
print(str)
修改:
str=["lucky","dog"]
str[1]="pig"
print(str)
#['lucky', 'pig']
删除:del str[index]/str.remove("obj")/str.pop()
str=["lucky","dog","love","me","love","dog"]
#del str[1] #删除指定下标
#['lucky', 'love', 'me', 'love', 'dog']
str.remove("dog") #删除指定元素中的第一个
#['lucky', 'love', 'me', 'love','dog']
#str.pop() #删除最后一个元素
print(str)
扩展:extend()
list1=["a","b","c"]
list2=[4,5,""]
list1.extend(list2)
print(list1)
#['a', 'b', 'c', 4, 5, '6']
拷贝:copy()
list=["a","b","c"]
list_copy=list.copy()
print(list_copy)
统计:list.count("ele")
排序与翻转:list.sort()/list.reverse()
获取下标:list.index("ele")
3.字典dict
一个关联数组,是一个通过关键字索引的对象的集合,使用键-值(key-value)进行存储,查找速度快;任意对象的无序集合;可变长、异构、任意嵌套;属于可变映射类型;对象引用表
与list相比:1.查找和插入的速度快,不会随着key的增加而增加 2.需要占用大量内存,内存浪费
而list:1.查找和插入的时间随着元素的增加而增加 2.占用内存空间小,浪费少,所以dict是空间来换取时间的一种方法
语法:dict={"key1":"value1","key2":"value",...}
特性:dict无序的,key唯一所以去重
增加、修改、删除:
dict={"":"mouse","":"ox","":"tiger"}
dict.popitem()#删除最后一个
del dict[""]
dict.pop("")
dict[""]="rabbit"#增加
dict[""]="dragon"#修改
print(dict)
查找:
dict={"":"mouse","":"ox","":"tiger"}
print("" in dict) #标准用法
#True
print(dict.get(""))
print(dict[""])#同上,但如果一个key不存在,就报错,
# get不会,不存在只返回None
多级字典嵌套:
循环dict:
#方法1
for key in info:
print(key,info[key]) #方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
print(k,v)
4.集合set
无序的不重复的数据集合,用于去除列表的“重”,测试两组数据之间的关系:交集、并集、差集等
s1=set([1,2,3]) #创建一个集合有1,2,3三个元素
s2=set('hello') #创建一个唯一字符字符的集合'h','e','o','l'
a=s1|s2 #并集
b=s1&s2 #交集set{}
c=s1-s2 #差集{1, 2, 3}
d=s1^s2 #对称差集{'l', 1, 2, 3, 'h', 'o', 'e'} print(s1.issubset(d))#子集 #True
print(s1.issuperset(s2))#超级#False
s1.union(s2) #返回新集合-s1与s2的并集
s1.intersection(s2) #返回新集合-s1与s2的交集
s1.difference(s2) #返新集合差集,该集合是s1的成员
s1.symmetric_difference(s2)#返新集合-除了s1、s2共有的成员
s1.copy() #返新集合,是集合s1的浅复制
s1.update(s2) #用s2的元素修改s1 #{1, 2, 3, 'l', 'h', 'o', 'e'}
s1.intersection_update(s2)#s1中的元素是属于s1、s2共同的 #set{}
s1.difference_update(s2)#{1,2,3}返回属于s1但不属于s2的元素
s1.symmetric_difference_update(s2)#{1, 2, 3, 'e', 'l', 'h', 'o'} s1.add(obj)
s1.remove(s2)
s1.discard() #删除指定的
s1.pop() #删除任意一个
s1.clear() #删除所有
print(s1)
5.文件操作
打开文件的模式有:
- r,只读模式(默认)。
- w,只写模式。【不可读;不存在则创建;存在则删除内容;】
- a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
- r+,可读写文件。【可读;可写;可追加】
- w+,写读
- a+,同a
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
- rU
- r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
- rb
- wb
- ab
with语句
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
with open("yesterday","r+")as f:
Python之freshman01的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
随机推荐
- 读书笔记 Week5 2018-4-5
再结束了第一个个人任务以后,我也算有点时间翻开一本大部头来通读一下.在看了一些相关的评论说:“该书可以从任意章节读起”后,刚刚在180M测试文件的个人任务中吃了亏的我,决定从他的第5部分,代码改善看起 ...
- Base -快捷键|通配符|特殊符号|输出(正确与错误的保存)
curl + a 移动光标到行首. curl +e 移动光标到行尾. curl +k 剪切光标所在位置到行末的字符. curl+u 剪切光标所在位置到行首的字符. curl +y ...
- 在CentOS6.x下安装Compiz——桌面立方体,特效种种
很多人貌似认为compiz必须要emerland,但事实上,没这个必要. compiz+gnome,实用,而又华丽,是个不错的选择. compiz需要显卡驱动,一般情况下不成问题(别忘了这是很新的ce ...
- c语言学习笔记 if语句的条件判断
可能经常会看到错误的if语句示范,比如这样的: if(a=6) { printf("hello"); } if语句块执行的条件是if条件的运算结果不是0则执行if语句块. a=6这 ...
- 数字图像处理实验(13):PROJECT 05-04,Parametric Wiener Filter 标签: 图像处理MATLAB 2017-05-27 10:59
实验要求: Objective: To understand the high performance of the parametric Wiener Filter in image restora ...
- Luogu 4869 albus就是要第一个出场
BZOJ 2844 被NOIP模拟赛题弄自闭了QuQ. 因为本题要求异或,所以自然地构造出线性基,假设本题中给出的数有$n$个,而我们构造出的线性基大小为$m$,那么每一个可以异或出来的数相当于出现了 ...
- 通过网页发布ios应用。
原文地址:http://www.zhihu.com/question/24304345 两种方法: 1. 测试版本 支持任何类型的开发者帐号,需要在developer后台设置授权deviceID,可以 ...
- Appium混合应用测试
Appium测试混合应用 混合应用即是原生应用中间混着html页面,需要在两种类型的页面之间跳转. 测试Android混合应用 前期设置 4.4以下版本使用automationName:Selendr ...
- C/C++预处理指令常见的预处理指令
C/C++预处理指令常见的预处理指令如下: #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下面代码 #ifd ...
- Cookie的跨域问题
被误解的HttpCookie.Domain属性 有人说可以利用HttpCookie.Domain属性实现跨域访问,假如在A站(A.com)中写B站(B.com)的cookie,如下所示 这其实是错误的 ...