内容回顾:-list:-append():用于在列表末尾添加新的对象
aList = [123,
'xyz',
'zara',
'abc']
aList.append(2009
)
print(aList)
-count():用于统计某个元素在列表中出现的次数
aList = [123,
'xyz',
'zara',
'abc', 123
]
aList.count(123
)
print(aList)
-extend():用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
aList = [123,
'xyz',
'zara',
'abc', 123
]
bList = [2009,
"你好"]
aList.extend(bList)
print(aList)
-index():用于从列表中找出某个值第一个匹配项的索引位置
aList = [123,
'xyz',
'zara',
'abc']
aList.index("xyz")
print(aList)
-insert():用于将指定对象插入列表的指定位置
aList = [123,
'xyz',
'zara',
'abc']
aList.insert(2, 993
)
print(aList)
-pop():用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
aList = [123,
'xyz',
'zara',
'abc']
# aList.pop()
aList.pop(2
)
print(aList
-remove():用于移除列表中某个值的第一个匹配项
aList = [123,
'xyz',
'zara',
'abc',
'xyz']
print(aList)
aList.remove(123
)
print(aList)
-reverse():函数用于反向列表中元素
aList = [123,
'xyz',
'zara',
'abc',
'xyz']
aList.reverse()
print(aList)
-sort():用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数
aList = [123,
'xyz',
'zara',
'abc',
'xyz']
aList.sort()
print(aList)
tuple:
- len():计算元组元素个数
tuple1, tuple2 = (123,
'xyz',
'zara'), (456,
'abc')
len(tuple1)
len(tuple2)
深拷贝和浅拷贝: -深拷贝:拷贝所有 -浅拷贝:只拷贝一层
今天内容:
1. 可变不可变不可变:str,int,bool,tuple可变: list,dict,set2. 字典查找速度快,基于哈希索引问题1. 字典的key都能是什么?布尔值: true= 1; false=0
dict:
-values():字典(Dictionary) values() 函数以列表返回字典中的所有值
dic = {
'Name':
'Zara',
'Age': 7
}
dic.values()
print(dic)
-keys():字典(Dictionary) keys() 函数以列表返回一个字典所有的键
dic = {
'Name':
'Zara',
'Age': 7
}
dic.keys()
print(dic)
-items():以列表返回可遍历的(键, 值) 元组数组
dic = {
'Name':
'Zara',
'Age': 7
}
dic.items()
print(dic)
-get():返回指定键的值,如果值不在字典中返回默认值
dic = {
'Name':
'Zara',
'Age': 27
}
dic.get("Name")
dic.get("server")
print(dic)
-setdefault():和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
dic = {
'Name':
'Zara',
'Age': 27
}
dic.setdefault("Name")
print(dic)
-fromkeys():用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
seq = (
'name',
'age',
'sex')
dic =
dic.fromkeys(seq)
print(dic)
-update():把字典dict2的键/值对更新到dict里
dic = {
'Name':
'Zara',
'Age': 7
}
dict2 = {
'Sex':
'female' }
dict.update(dict2)
print(dic)
-pop():删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
site= {
'name':
'老男孩',
'alexa': 10000
}
pop_obj=site.pop(
'name')
print(pop_obj)
-popitem():随机返回并删除字典中的一对键和值。如果字典已经为空,却调用了此方法,就报出KeyError异常
site= {
'name':
'老男孩',
'alexa': 10000
}
pop_obj=
site.popitem()
print(pop_obj)
set: -语法:di = {"k1","k2"}
-1.
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
names.add('龙哥')
print(names)
-2.差集
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
boys = [
'小高',
'海娇',
'小狗']
val = names.difference(boys)
# names中存在,boys中不存在数据
print(val)
val = boys.difference(names)
# boys中存在,names中不存在数据
print(val)
boys.difference_update(names) # boys中存在,names中不存在数据
print(boys)
names.difference_update(boys) # boys中存在,names中不存在数据
print(names)
-3.对称差集
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
boys = {
'小高',
'海娇',
'小狗'}
# {'龙哥','海角','老狗','成绩','小江'}
# {'海娇','小狗'}
# {'海娇','小狗','龙哥','海角','老狗','成绩','小江'}
val =
names.symmetric_difference(boys)
print(val)
names.symmetric_difference_update(boys)
print(names)
-4.在集合中删除指定值
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
names.discard('龙哥')
print(names)
-5.求交集
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
boys = {
'小高',
'海娇',
'小狗'}
val =
names.intersection(boys)
print(val)
names.intersection_update(boys)
print(names)
-6.并集
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
boys = {
'小高',
'海娇',
'小狗'}
val =
names.union(boys)
print(val)
-7.判断是否无交集
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
boys = {
'海娇',
'小狗'}
# 有交集:False
# 无交集:True
val =
names.isdisjoint(boys)
print(val)
-8.子集父集
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
boys = {
'龙哥',
'老狗'}
# 是否是子集
val =
boys.issubset(names)
print(val)
# 是否是父集
val =
names.issuperset(boys)
print(val)
-9.删除集合元素
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
v =
names.pop()
print(v)
names.remove('老狗')
print(names)
names.discard('老狗1')
print(names)
-10.更新
names = {
'龙哥',
'海角',
'老狗',
'成绩',
'小江',
'小高'}
boys = [
'龙哥1',
'老狗1']
names.update(boys)
print(names)
-11.集合- 元素,不可变
文件操作:
-操作文件三要素: -1. 路径:D:\文件名称.txt -2. 编码:utf-8 -3.模式: - r:以读方式打开,不能进行写操作,文件必须是已经存在的 - r+:以读写方式打开,文件必须是已经存在的 - w:以写方式打开,不能进行读操作,若文件存在,则先清空,然后重新创建;若不存在,则创建文件
- w+:以读写方式打开,若文件存在,则先清空,然后重新创建;若不存在,则创建文件 - a:以追加方式打开,不能进行读操作,把数据追加到文件的末尾;若不存在,则创建文件 - a+:以读写方式打开,把数据追加到文件的末尾;若不存在,则创建文件
-功能:
-obj.read():是最简单的一种方法,一次性读取文件的所有内容放在一个大字符串中,即存在内存中
-obj.write():把str写到文件中,write()并不会在str后加上一个换行符 -obj.seek():将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence 参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。 -obj.tell():返回文件操作标记的当前位置,以文件的开头为原点 -obj.close():关闭文件。python会在一个文件不用后自动关闭文件 -obj.flush():把缓冲区的内容写入硬盘
obj = open(
'美女.txt',mode=
'r+',encoding=
'utf-8')
data = obj.read(1)
# 读
情况一:
obj.write('6')
# 在最后继续写
情况二:
obj.seek(1
)
obj.write('6')
# 定位到指定位置
obj.close()
print(data)
-读取utf-8编码数据,【转换】成unicode(str)编码的数据
obj = open(
'D:\美女模特空姐护士联系方式.txt',encoding=
'utf-8',mode=
'r')
content =
obj.read()
obj.close()
print(content,type(content))
obj = open(
'D:\美女模特空姐护士联系方式.txt',mode=
'rb')
content =
obj.read()
obj.close()
print(content,type(content)
-1. 文件在硬盘上时,一定是某种编码:utf-8,gbk......-2. rb, bytes, rb-3. r, 转换encoding= utf-8 r encoding:utf-8
-读文件
obj = open(
'D:\\n美女模特空姐护士联系方式.txt',encoding=
'utf-8',mode=
'r')
content = obj.read()
# 字符串类型
obj.close()
print(content,type(content))
-只读:
- open(文件路径, mode='rb')- open(文件路径, mode='r', encoding='utf-8')
obj = open(
'D:\美女模特空姐护士联系方式.txt', encoding=
'utf-8', mode=
'r')
content =
obj.read()
obj.close()
print(content)
obj = open(
'D:\美女模特空姐护士联系方式.txt', mode=
'rb')
content =
obj.read()
obj.close()
print(content)
-只写: - open(文件路径, mode='wb') - open(文件路径, mode='w', encoding='utf-8')
-
示例:
obj = open(
'美女.txt',mode=
'w',encoding=
'utf-8')
obj.write("海角-贾敏")
obj.close()
obj = open(
'美女.txt',mode=
'wb')
obj.write("海角-贾敏22222".encode(
'utf-8'))
obj.close()
-只追加: - open(文件路径, mode='ab') - open(文件路径, mode='a', encoding='utf-8')
obj = open(
'美女.txt',mode=
'a',encoding=
'utf-8')
obj.write("小红")
obj.close()
obj = open(
'美女.txt',mode=
'ab')
obj.write("龙哥".encode(
'utf-8'))
obj.close()
obj = open(
'美女.txt', mode=
'r+', encoding=
'utf-8')
data = obj.read()
# 读取所有文件内容
data = obj.read(2)
# r,字符;rb,字节
obj.write(
'字节或字符串')
obj.seek(2)
# 永远是字节,指定指针位置
obj.tell()
# 读取当前指针的位置
#是否可写
obj.writable()
#是否可读
obj.readable()
#将内存中内容刷到硬盘
obj.flush()
obj.tell()
data =
obj.readline()
print(data)
data =
obj.readline()
print(data)
#截取文件内容,根据指针位置,只保留指针之前数据
obj.truncate()
for line
in obj:
print(line)
obj.close()
转载于:https://www.cnblogs.com/chengdajing/articles/7425159.html