2nd,Python基础2——02
1 列表、元组操作
列表可以对数据实现最方便的存储、修改等操作
names = ['Jack', 'Leon','Eric']
通过下表访问列表中的元素,下标从0开始计数
names = ['Jack','Leon','Eric'] a = names[0] b = names[1] c = names[-1] d = names[-2] print(a, b, c, d)
切片:取多个元素
names = ['Alex','Leon','Eric',"Rain","Tom","Amy"] a = names[1: 4]#取下标1至下标4之间的数字,包括1,不包括4 b = names[1: -1]#取下标1至-1的值,不包括-1 c = names[0: 3] d = names[ :3]#如果是从头开始取,0可以忽略,跟上句一样 e = names[3: ]#如果想取最后一个,必须不能写-1, f = names[3: -1]#这样-1就不会包含 g = names[0::2]#后面的2代表,每隔一个元素,取一个 h = names[::2]#和上句效果一样 print(a, b, c, d, e, f, g, h)
追加——append方法
names.append("我是新来的")
print(names)
插入——insert方法
names.insert(2,"插入1")
修改——索引赋值
names[2] = "换人了"
删除——del函数、remove方法、pop方法
del names[2]#删除指定位置元素
names.remove("Eric")#删除指定元素
names.pop()#删除最后一个元素
扩展——extend方法
b = [1, 2, 3] names.extend(b) print(names)
拷贝——copy方法
name_copy = names.copy() print(name_copy)
统计——count方法
count1 = names.count("Leon")
print(count1)
排序、反转——sort方法、reverse方法
names.sort() print(names)
names.reverse() print(names)
获取下标——index方法
index1 = names.index("Leon")
print(index1)
元组(只读列表)
names2 = ("aaa", "bbb", "ccc")
元组只有count、index两个方法
2 字符串操作
特性:不可修改
首字母大写
name = "leon nie" print(name.capitalize())
大写全部变小写
print(name.casefold())
center方法
print(name.center(50,"-"))#结果 ---------------------leon nie---------------------
统计次数
print(name.count("e"))
将字符串编码成byte3格式
print(name.encode()) #输出 b'leon nie'
判断是否以XX结尾
print(name.endswith("n"))
format方法
msg = "my name is {}, and age is {}"
print(msg.format("leon", 22))
msg = "my name is {0}, and age is {1}"
print(msg.format("leon", 22))
msg = "my name is {name}, and age is {age}"
print(msg.format(age = 22, name = "lmsg = "my name is {name}, and age is {age}"
print(msg.format_map({"name":"alex","age":22
#按顺序写入
msg = "my name is {}, and age is {}"
print(msg.format("leon", 22))
#指定顺序写入
msg = "my name is {0}, and age is {1}"
print(msg.format("leon", 22))
#指定元素写入
msg = "my name is {name}, and age is {age}"
print(msg.format(age = 22, name = "leon"))
#字典写入
msg = "my name is {name}, and age is {age}"
print(msg.format_map({"name":"alex","age":22}))
返回元素所在的索引
print(msg.index("age"))
是否为纯数字和字母
print('9aA'.isalnum())
是否整数
'.isdigit())
join方法
print("|".join(["aaa","bbb","ccc"]))#连接列表
两个字符串对应转换,可以用于密码?——maketrans方法
intab = "aeiou" outtab = " str = "this is string example...wow!!!" trantab = str.maketrans(intab, outtab) print(str.translate(trantab))
替换函数——replace
print("alex li, chinese name is lijie".replace("li","LI",1))
大小写互换——swaplace
print("aleX li".swapcase())
用0填充指定长度——zfill
msg = "leon" print(msg.zfill((40)))
左填充、右填充——ljust、rjust
print(msg.ljust(40,"-")) print(msg.rjust(40,"+"))
检查是否可以作为标识符,即是否符合变量命名规则
print(msg.isidentifier())
3 字典操作
key-value数据类型
语法:
info = {
'stu1101':'aaa',
'stu1102':'bbb',
'stu1103':'ccc',
}
字典的特性:
- dict是无序的
- key必须是唯一的
增加
info["stu1104"] = "ddd" print(info)
修改
info["stu1101"] = "XXX"
删除
info.pop("stu1101")
del info['stu1103']
info.popitem()#随机删除
查找
#判断是否在字典中
print("stu1102" in info)
#获取,如果没有该key返回None
print(info.get("stu1102"))
#获取,如果key不存在,报错
info["stu1105"]
setdefault和update
a = info.values()
b = info.keys()
c = info.setdefault("stu1106","Alex")#setdefault方法,key-value存在,更新value。不存在,添加。
x = {1:2, 3:4, "stu1102":"HAHA"}
info.update(x)#update方法对有key的value进行更新,没有的添加
items
print(info.items()) #返回字典中的所有key-value对
循环dict
for key in info:
print(key,info[key])
4 集合操作
集合是一个无序的,不重复的数据组合,主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
s = set([3, 5, 9, 10])
t = set("Hello")
a = t | s #并集
b = t & s #交集
b = s.intersection(t)#st的交集
c = t - s #差集,在t中,不在s中
c = t.difference(s)#
d = t ^ s #对称差集(项在t或s中,但不会同时出现在二者中)
t.add('x') #在t中添加一项
s.update([10, 37, 42])#在s中添加多项
t.remove('H')#删除一项
len_s = len(s)#set的长度
print('x' in s)#判断x是否是s的成员
print('x' not in s)#判断x是否不是s的成员
print(s.issubset(t))#判断s是否是t的子集
print(t.issuperset(s))#判断t是否是s的父集
print(s.union(t))#返回包含s、t每一个元素的set,并集
5 文件操作
文件操作流程
- 1 打开文件,得到文件句柄并赋值给一个变量
- 2 通过句柄对文件进行操作
- 3 关闭文件.
基本操作
f = open('lyrichaha',encoding='UTF-8')#要指定解码方式UTF-8,不然无法打开
first_line = f.readline()#读一行
print('first line: ', first_line)
print('我是分割线'.center(50,'-'))
data = f.read()#读取剩下的所有内容,文件大时不要用
print(data)
f.close()
打开文件的模式:
- r,只读模式(默认);
- w,只写模式。(不可读,不存在则创建,存在则删除内容);
- a,追加模式。(可读,不存在则创建,存在则只追加内容)。
“+”表示可以同时读写某个文件
- r+,可读写文件。(可读,可写,可追加)
- w+,写读
- a+,同a
“U”表示在读取时,可以将\r \n \r\n自动转换成 \n(与r或r+模式同使用)
- rU
- r+U
“b”表示处理二进制文件(如:FTP发送上传ISO镜像文件,windows处理二进制文件时需标注)
- rb
- wb
- ab
with语句
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
with open('log', 'r') as f:
...
如此方式,当with代码块执行完毕时,内部自动关闭并释放文件资源。
Python2.7之后,with又支持同时对多个文件的上下文进行管理,即:
with open('log1') as obj1, open('log2') as obj2:
pass
6 字符编码与转码

2nd,Python基础2——02的更多相关文章
- python基础之02列表/元组/字典/set集合
python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...
- Python基础教程-02
<Python基础教程> 第3章 使用字符串 字符串方法find返回的并非布尔值.如果find像这样返回0,就意味着它在索引0处找到 了指定的子串 join可合并一个字符串列表,不能合并数 ...
- python 基础干货 02
list 与 tuple list 类似 数组 tuple 跟 list 一样, 只是一旦定义, 里边的内容不可以改变. 这样, 上边的内容就不可以改变了. "可变的" tuple ...
- python基础训练营02
任务二 时长:2天 1. 列表 a. 标志 b. 基本操作(创建,append( ),pop( ) ,del( ), 拷贝) c. 列表相关方法 2. 元组 a. 标志 b. 基本操作(创建及不可变性 ...
- python基础知识0-2
# !/usr/bin/env python # 提示输入用户名和密码 # 验证用户名和密码# 如果错误,则输出用户名或密码错误# 如果成功,则输出 欢迎,XXX! import ge ...
- Python基础:02数字
1:Python标准整数类型等价于C的(有符号)长整型.整数一般以十进制表示,但是Python也支持八进制或十六进制来表示整数.八进制整数以数字“0”开始, 十六进制整数则以“0x”或“0X”开始. ...
- Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
- python基础——类和实例
python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...
- python基础——使用模块
python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...
随机推荐
- html 基本布局介绍
1.div默认是纵向排列的,例子如下: <div id="wrap"> <div id="div1">div1</div> ...
- 单台主机上DB2 10.5和arcgis 10.4 空间数据库配置
该篇文章重点参考arcgis官网说明:http://enterprise.arcgis.com/zh-cn/server/10.4/publish-services/linux/register-db ...
- tft屏图像显示也成功完成
2010-04-30 14:18:00 tft屏图像显示也成功完成. 其实有了刷屏的经验,图像显示就很简单. void address_set(uint x1,uint y1,uint x2,uint ...
- 编写一个JavaWeb项目
基本流程:JSP文件显示页面,在前端页面输入赋值,使用form或href超链接传值到Servlet中方法,在Servlet方法中调用Dao层的类对象,将数据传到数据库中,并实现对数据库里的数据的增删改 ...
- vue 生命周期钩子的理解 watch computed
一 理解vue的生命周期,首先需要注意几个关键字 1. el :选择器 2. $el:对应选择器的template模板(html代码) 3. render:也是vue实例中的一项,其参数更接近vue ...
- (Linux)动态度的编写
动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...
- 从零开始部署一个 Laravel 站点
从零开始部署一个 Laravel 站点 此文章为原创文章,未经同意,禁止转载. PHP Laravel Web Git 在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubun ...
- fjwc2019 D6T2 密文(trie+贪心)
#194. 「2019冬令营提高组」密文 设$s[i]$表示前$i$个密文的异或和 容易发现,只要知道$s[0]~s[n](s[0]=0)$就可以知道每一位的值. 转化一下,就变成了在完全图上求最小生 ...
- DDoS防御方案
转自:http://netsecurity.51cto.com/art/201211/368930.htm 深入浅出DDoS攻击防御应对篇:DDoS防御方案 谈到DDoS防御,首先就是要知道到底遭受了 ...
- oracle 11g SKIP_UNUSABLE_INDEXES参数
SKIP_UNUSABLE_INDEXES的作用是在DML期间跳过对索引的维护,这样可以提交DML的效率,可以事后一次性重建,但是SKIP_UNUSABLE_INDEXES=y对unique inde ...