Python_day2 列表、字符串、字典、集合

1. 列表、元组操作 

列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

列表不同于数组,列表可以存储任意类型的数据,并且可以混合类型存储.

定义列表

names = ['jason','fred','eric']

切片:取多个元素

arr[0:3] 取第 0,1,2元素
arr[-1] 取最后一个元素
arr[-5:] 取倒数第五个到最后一个之间的元素

追加

arr.append('yuansu')在最后添加元素

插入

arr.insert(2,'jason')在arr中第二个元素后面插入元素

修改

arr[1] = 'jason' 将第二个元素修改为jason 

删除

arr.remove('元素名')删除指定元素
del arr[2] 删除第3个元素
arr.pop()删除最后一个元素

扩展,拼接

arr.extend(表名)  扩展一个新的列表,拼接.

拷贝

arr.copy() 开辟了新的内存空间  两个列表没有关系了 但是默认只copy第一层,不copy第二层
copy.copy(arr) 和 arr.copy()是一个意思
arr.deepcopy() 深拷贝

统计

arr.count(1)  arr中 有多少个 '1'  --计数

排序&翻转

arr.reverse()  翻转列表
arr.sort() 排序(3.0 必须是同一类型的才能排序)

获取下标

arr.index(9)  arr钟 9的索引

步长

print(arr[0:-1:2]) 隔一个打印一个   (不填写,默认为1)
print(arr[0:-1:3]) 隔两个打印 ---步长

元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

names = ('jason','fred','eric')

它只有2个方法,一个是count,一个是index.

 

2. 字符串操作   

特性:不可修改 

name.capitalize()  首字母大写
name.casefold()   大写全部变小写
name.center(50,"-")  输出 '---------------------jason----------------------'
name.count('son') 统计 son出现次数
name.encode()  将字符串编码成bytes格式
"Jaosn\tFang".expandtabs(10)将\t转换成多长(10)的空格 name.find('A') 查找A,找到返回其索引, 找不到返回-1
msg.endswith('xxx') 以xxx结束
msg.startswith('xx') 以xx开头
msg.upper() 转换为大写
msg.lower() 转换为小写
msg.swapcase 大小写互换
msg.index('a')  返回a所在字符串的索引
'9aA'.isalnum()   True
msg = "xxx{name},xxxx(age)"
msg.format('jason',123) 给字符串赋值
msg2 = "xxx{0},xxxx(1)" (只能按顺序 0,1,2,3....)
msg2.format('jason',123)
填充: name = 'jason fang' name.cneter(40,'-') :字符串长度不到40 在两边填充'-'
msg.isdigit() 判断是否全是数字
msg.isalpha() 判断是否都是字母
msg.isalnum() 所有的字符都是数字或者都是字母
msg.islower() 所有的都是小写
msg.isupper() 所有的都是大写
msg.istitle() 所有的都是首字母大写,比如标题
msg.isspace() 所有的都是空白字符:\t \n \r

 

3. 字典操作

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应

字典是无序的组合 Key是唯一的  存储在内存中的哈希值

增加

id_db[key][new]: 插入新的

删除

id_db[key].pop("xx"): 删除指定的

修改

id_db[key][index] : 修改

查找

id_db[key]: 取值 (不存在报错)
id_db.get(xxx):取值不报错

 

其他方法

#values 变为元组  禁用
>>> info.values() 
dict_values(['LongZe Luola', 'XiaoZe Maliya'])
#keys  打印键值
>>> info.keys() 
dict_keys(['stu1102', 'stu1103'])

 

#setdefault 取一个key值,不存在,就添加
>>> info.setdefault("stu1106","Alex") 
'Alex'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> info.setdefault("stu1102","龙泽萝拉")
'LongZe Luola'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}

 

#update  更新,拼接
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}
>>> info.update(b)
>>> info
{'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
#items  变为元组  禁用
info.items() 
dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')])
#通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
>>> dict.fromkeys([1,2,3],'testd')
{1: 'testd', 2: 'testd', 3: 'testd'}
如果是将列表赋值,赋值的是内存地址,也就是说修改单个列表中的内容,其他的也一并修改

 

循环dict

#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    print(k,v)

 

4.集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

 

常用操作

s = set([3,5,9,10])      #创建一个数值集合  
  
t = set("Hello")         #创建一个唯一字符的集合  


a = t | s          # t 和 s的并集  
  
b = t & s          # t 和 s的交集  
  
c = t – s          # 求差集(项在t中,但不在s中)  
  
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
  
   
  
基本操作:  
  
t.add('x')            # 添加一项  
  
s.update([10,37,42])  # 在s中添加多项  
  
   
  
使用remove()可以删除一项:  
  
t.remove('H')  
  
  
len(s)  
set 的长度  
  
x in s  
测试 x 是否是 s 的成员  
  
x not in s  
测试 x 是否不是 s 的成员  
  
s.issubset(t)  
s <= t  
测试是否 s 中的每一个元素都在 t 中  
  
s.issuperset(t)  
s >= t  
测试是否 t 中的每一个元素都在 s 中  
  
s.union(t)  
s | t  
返回一个新的 set 包含 s 和 t 中的每一个元素  
  
s.intersection(t)  
s & t  
返回一个新的 set 包含 s 和 t 中的公共元素  
  
s.difference(t)  
s - t  
返回一个新的 set 包含 s 中有但是 t 中没有的元素  
  
s.symmetric_difference(t)  
s ^ t  
返回一个新的 set 包含 s 和 t 中不重复的元素  
  
s.copy()  
返回 set “s”的一个浅复制  

5. 文件操作

对文件操作流程

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄对文件进行操作
  3. 关闭文件 

  = open('lyrics'#打开文件

  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镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab

with语句

为了避免打开文件后忘记关闭,可以通过管理上下文,即:

with open('log','r') as f:

如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:

with open('log1') as obj1, open('log2') as obj2:

 

6. 其他补充

三元运算:

  c = a+b if a>b else a-b

  如果a>b 执行前面的a+b 如果不成立 执行 a-b

OS模块:

  os.remove("filename") 删除文件

  os.rename("filename") 修改文件名称

字符串格式化:

  %s:字符串 %d:数字 %f:浮点型 %r:原生字符串输出

 

转载于:https://www.cnblogs.com/fangshiqi/p/6307149.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值