码迷,mamicode.com
首页 > 编程语言 > 详细

python 小数据池、copy、文件操作

时间:2018-11-04 19:38:29      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:文件操作   section   gbk   可变   name   iba   int   优点   不重复   

一、编码进阶

# 字符串转换成bytes型
s1 = taibai
s2 = btaibai # 默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b+字符串代表的就是bytes 


# 将字符串的第一个字母变成大写,其他字母变小写
s1 = blily
print(s1.capitalize())


# 编码
str ---> bytes  编码 encode()
s1 = alex
b1 = s1.encode(utf-8)  # 编码
b2 = s1.encode(gbk)
print(s1, type(s1))
print(b1, type(b1))
print(b2, type(b2))

# 解码
s1 = 猪八戒
b1 = s1.encode(utf-8)
b2 = s1.encode(gbk)
print(s1,b1)
print(s1,b2)

bytes ---> str  decode()解码
b1 = b\xe5\xa4\xaa\xe7\x99\xbd
s1 = b1.decode(gbk)
print(s1)

 

二、小数据池

1. id  查看内存地址

s1 = 太白
s2 = 太白
print(s1 == s2)  # 值是否相等
print(id(s1))
print(id(s2))# 内存地址

2. is 身份运算 判断的是内存地址是否相同

s1 = 太白
s2 = 太白
print(s1 is s2) # 判断内存地址是否相等

3. 小数据池

i1 = -3
int: -5 ~ 256 范围之内
str: 满足一定得规则的字符串(详见博客https://www.cnblogs.com/jin-xin/articles/9439483.html)

小数据池的优点:
1,节省空间。
2,提高性能。

 

三、集合

  集合里面的元素必须是不可变的数据类型,集合本身是可变的数据类型。

  集合是无序的,不重复。

print({[1, 2, 3], {name: lily}})
print({lily, marry, tony, 老猪, AnNi})

 1、 列表去重。  

l1 = [1, 1, 2, 3, 4, 3, 2, 4, 5, 6]
set1 = set(l1)
print(set1)
l1 = list(set1)
print(l1)

2、关系测试。

set1 = {lily, marry, tony, 老猪, AnNi}
for i in set1:
    print(i)

3、不可变的数据类型

set2 = frozenset({1, 2, 3, 7})  # frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
print(set2, type(set2))  # 不可变的数据类型
dic = {set2: 666}
print(dic)
for i in set2:
    print(i)

4、集合的增删改查

# 1、集合的创建
set1 = set({1, 2, barry})
set2 = {1, 2, barry}
print(set1, set2)  # 结果为:{1, 2, ‘barry‘} {1, 2, ‘barry‘}

# 2、集合的增
set1 = {alex, wusir, ritian, egon, barry}
set1.add(景女神)
print(set1)

# 3、update:迭代着增加
set1.update(A)
print(set1)
set1.update(老师)
print(set1)
set1.update([1, 2, 3])
print(set1)

# 4、集合的删
set1 = {alex, wusir, ritian, egon, barry}

set1.remove(alex)  # 删除一个元素
print(set1)

set1.pop()  # 随机删除一个元素
print(set1)

set1.clear()  # 清空集合
print(set1)

del set1  # 删除集合
print(set1)

 

5、集合的其他操作:

# 1、交集
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2)  # {4, 5}
print(set1.intersection(set2))  # {4, 5}

# 2、并集。(| 或者 union)
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7,8}
print(set2.union(set1))  # {1, 2, 3, 4, 5, 6, 7,8}

# 3、差集。(- 或者 difference)
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 - set2)  # {1, 2, 3}
print(set1.difference(set2))  # {1, 2, 3}

# 4、反交集。 (^ 或者 symmetric_difference)
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}

# 5、frozenset 不可变集合,让集合变成不可变类型。
s = frozenset(barry)
print(s, type(s))  # frozenset({‘a‘, ‘y‘, ‘b‘, ‘r‘}) <class ‘frozenset‘>

 

四、深浅copy

1. 

 

python 小数据池、copy、文件操作

标签:文件操作   section   gbk   可变   name   iba   int   优点   不重复   

原文地址:https://www.cnblogs.com/caoyinshan/p/9904652.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!