python基础(三):字典、元组、文件

字典

声明

字典的声明有两种方式

  1. {键:值,,}
>>> d = {'ISBN':'22222','Title':'Pythonbase','price':30}
>>> d
{'ISBN': '22222', 'Title': 'Pythonbase', 'price': 30}
  1. dict(键=键值,)
>>> d = dict(ISBN='22222',Title='Pythonbase',price=30)
>>> d
{'ISBN': '22222', 'Title': 'Pythonbase', 'price': 30}

操作

基本操作

  • 填加
>>> d = {'ISBN':'22222','Title':'Pythonbase','price':'30'}
>>> d
{'ISBN': '22222', 'Title': 'Pythonbase', 'price': '30'}
>>> d['Author'] = 'xue'
>>> d
{'ISBN': '22222', 'Title': 'Pythonbase', 'price': '30', 'Author': 'xue'}
  • 更改
>>> l = [1,2,3,4,5]
>>> l[0]= 99
>>> l
[99, 2, 3, 4, 5]

需要注意的操作

  • 获取
  1. 字典名称[键]
>> d = {'ISBN':'22222','Title':'Pythonbase','price':'30'}
>>> d
{'ISBN': '22222', 'Title': 'Pythonbase', 'price': '30'}
>>> d['Title']
'Pythonbase'
>>> d['price']
'30'
  1. 字典名称.get(‘键’,没有此键的输出值)———这个操作在项目中用处很大,避免报错
>>> d
{'ISBN': '22222', 'Title': 'Pythonbase', 'price': '30', 'Author': 'xue'}
>>> d.get('price')
'30'
>>> d.get('Price',0.0)
0.0
  • 合并:字典.update(字典名)

属性

  • 输出键keys
>>> emp
{'name': 'xueling', 'age': 40, 'pubdata': 2019, 'dep': '技术'}
>>> emp.keys()
dict_keys(['name', 'age', 'pubdata', 'dep'])
>>> for i in emp.keys():
... 	print(i)
... 
name
age
pubdata
dep
  • 输出键值values
>>> emp
{'name': 'xueling', 'age': 40, 'pubdata': 2019, 'dep': '技术'}
>>> emp.values()
dict_values(['xueling', 40, 2019, '技术'])
  • 输出所有内容
>>> emp.items()
dict_items([('name', 'xueling'), ('age', 40), ('pubdata', 2019), ('dep', '技术')])

排序

  1. 将keys放入列表
>>> d
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> ks = list(d.keys())
>>> ks.sort()
>>> ks
['a', 'b', 'c', 'd']
  1. 使用全局函数sorted()
>>> d = {'b':1,'a':2,'c':3,'d':4}
>>> ks = d.keys()
>>> for k in sorted(ks):
... 	print(k,d.get(k))
... 
a 2
b 1
c 3
d 4
>>> 

元组

特点

任意对象,下标访问,不可改变

声明

>>> (1,2)
(1, 2)

操作

  • 加、赋值、交换
>>> (1,2)+(3,4)
(1, 2, 3, 4)
>>> x = 40
>>> x
40
>>> x = 5
>>> y = 10
>>> x,y = y,x
>>> x
10
>>> y
5
  • 查找
>>> t = (1,2,3)
>>> t.index(2)
1
  • 统计
>>> t = (1,2,3)
>>> t.count(3)
1
  • 其他操作
>>> t = (1,2,3)
>>> for x in t:
... 	print(x**2)
... 
1
4
9
>>> res=[]
>>> for x in t:
... 	res.append(x**2)
... 
>>> res
[1, 4, 9]
>>> res = [x**2 for x in t]
>>> res
[1, 4, 9]

面向对象的namedtuple

from collections import namedtuple
Employee = namedtuple('Employee',['name','age','job'])
jerry = Employee('jerry',30,'computer')
jerry.name
'jerry'
jerry.age
30
jerry.job
'computer'

文件

基本语法

file = open(‘文件名’,mode)

mode含义
r
w
a追加
b二进制文件
+既读又写

操作

  • read
  • readline
  • readlines:list遍历
  • close
  • format

例子:

>>>ff = open('hello.txt','w')
>>>ff.write('hi\nI am \n')
10
>>>ff.close()
>>>f = open('hello.txt','r')
>>>f.read()
'hi\n I am \n'
>>>f.readline()
''
>>>l = open('hello.txt').readlines()
>>>l
['hi\n', ' I am \n']
>>>for i in l :
    print(i)
    
hi
I am 
>>>x,y,z =1,2,3
>>>l = [1,2,3]
>>>l
[1, 2, 3]
>>>f = open('datafile.txt','w')
>>>f.write('{},{},{}'.format(x,y,z))
5
>>>f.write(str(l))
9
>>>f.close()
>>>chars = open('datafile.txt').read()
>>chars
'1,2,3\n[1, 2, 3]'

pickle存取python对象

序列化

  • dump(对象,目标文件)
  • load(文件)
>>>d = {'a':1,'b':2}
>>>f = open('datafile.pkl','wb')
>>>import pickle
>>>pickle.dump(d,f)
>>>f.close()
>>>open('datafile.pkl','rb').read()
b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01K\x01X\x01\x00\x00\x00bq\x02K\x02u.'

>>>f = open('datafile.pkl','rb')
>>>data = pickle.load(f)
>>>data
{'a': 1, 'b': 2}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值