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的更多相关文章

  1. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  2. Python基础教程-02

    <Python基础教程> 第3章 使用字符串 字符串方法find返回的并非布尔值.如果find像这样返回0,就意味着它在索引0处找到 了指定的子串 join可合并一个字符串列表,不能合并数 ...

  3. python 基础干货 02

    list 与 tuple list 类似 数组 tuple 跟 list 一样, 只是一旦定义, 里边的内容不可以改变. 这样, 上边的内容就不可以改变了. "可变的" tuple ...

  4. python基础训练营02

    任务二 时长:2天 1. 列表 a. 标志 b. 基本操作(创建,append( ),pop( ) ,del( ), 拷贝) c. 列表相关方法 2. 元组 a. 标志 b. 基本操作(创建及不可变性 ...

  5. python基础知识0-2

    # !/usr/bin/env python # 提示输入用户名和密码 # 验证用户名和密码#     如果错误,则输出用户名或密码错误#     如果成功,则输出 欢迎,XXX! import ge ...

  6. Python基础:02数字

    1:Python标准整数类型等价于C的(有符号)长整型.整数一般以十进制表示,但是Python也支持八进制或十六进制来表示整数.八进制整数以数字“0”开始, 十六进制整数则以“0x”或“0X”开始. ...

  7. Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程

    [保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...

  8. python基础——类和实例

    python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...

  9. python基础——使用模块

    python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

随机推荐

  1. 20165215 2017-2018-2 《Java程序设计》第6周学习总结

    20165215 2017-2018-2 <Java程序设计>第6周学习总结 教材学习内容总结 chapter8 Java把String类定义为final类,即String类不能有子类 用 ...

  2. ptrace线程

    在ptrace时使用waitpid(-1, &status, 0);无法正常trace 修改为waitpid(-1, &status, __WALL);即可 原因是:

  3. Python+OpenCV图像处理(六)—— ROI与泛洪填充

    一.ROI ROI(region of interest),感兴趣区域.机器视觉.图像处理中,从被处理的图像以方框.圆.椭圆.不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI. 代码如下 ...

  4. 介绍python中运算符优先级

    下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合).这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符. ...

  5. GMIS 2017 大会陈雨强演讲:机器学习模型,宽与深的大战

    https://blog.csdn.net/starzhou/article/details/72819374 2017-05-27 19:15:36     GMIS 2017    10 0 5 ...

  6. P5290 [十二省联考2019]春节十二响(堆+启发式合并)

    P5290 [十二省联考2019]春节十二响 从特殊到一般 我们先看链的情况. 我们把点$1$左右的两条子链分别扔入堆里 每次取出两个堆的最大值,把答案累加上更大的那个(另一堆为空则直接加上去). 那 ...

  7. 【题解】Luogu P1204 [USACO1.2]挤牛奶Milking Cows

    原题传送门:P1204 [USACO1.2]挤牛奶Milking Cows 实际是道很弱智的题目qaq 但窝还是觉得用珂朵莉树写会++rp(窝都初二了,还要考pj) 前置芝士:珂朵莉树 窝博客里对珂朵 ...

  8. 爬虫的基本操作 requests / BeautifulSoup 的使用

    爬虫的基本操作 爬虫基础知识 什么是爬虫? 在最开始,还没有诞生Google和百度等一系列搜索引擎的公司的时候,人们进入一些公司的网站只能通过在浏览器地址栏输入网址的方式访问,如同在很早之前前手机不流 ...

  9. Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析

    文化         经管 ....略 结论: 一个模块的评分与评论数相关,评分为 [8.8——9.2] 之间的书籍评论数往往是模块中最多的

  10. 04: nginx部署vue

    1.1 基本配置 server { listen 9000; server_name 1.1.1.3; #access_log logs/access_example.log main; root / ...