Python基本数据类型操作

知识点:
1.列表、元组操作
2.字符串操作
3.字典操作
4.集合操作
5.文件操作
6.字符编码与转码


一.列表、元组操作
列表是常见的数据类型之一。
定义列表:
names = ['jack','rose','lucy']
通过下标访问列表中的元素,下标从0开始:
names[0] #第一个元素
names[1] #第二个元素
names[-2] #倒数第二个

切片:取多个元素
names = ['jack','rose','lucy']
names[1:2] #取下标1至下标4之间的值,包括下标1的值,不包括下标4的元素
names[1:-1] #取下标1到-1的值,不包括-1
names[:2] #从0开始
names[1:] #1到最后一个
names[::2] #2代表每个一个元素取一个值
追加:
names = ['jack','rose','lucy']
names.append('frank')
插入:
names.insert(2,'插入在lucy之后‘)
修改:
names.[2] = ’frank' #替换掉lucy
del names[2] #删除下标2的值
names.remove['rose'] #删除rose
names.pop() #删除列表最后一个值
扩展:
names = ['jack','rose','lucy']
b = [1,2,3]
names.extend(b) #把b列表的元素合并在names列表里
拷贝:
names = ['jack','rose','lucy']
name_copy = names.copy() #copy一份names列表
统计:
names.count('jack') #统计jack个数
排序&反转:
names = ['jack','rose','lucy']
names.sort() #排序(3.0不同类型不能放在一起排序)
names.reverse() #反转
获取下标:
names.index('jack') #只返回找到的第一个下标

元组:
元组其实和列表差不多,也是存一组数,只是它一旦创建,便不能再修改,所以又叫只读列表。
语法:
names = ('alex','jack','eric')
只有两个方法:count,index

二:字符串操作
>>>n3_arg = {'name':'alex','age':'33'}
>>>n3 = 'my name is {name} and age is {age}'
>>>n3.format_map(n3_arg)
'my name is alex and age is 33'

>>>n4 = 'hello world'
>>n4.ljust(4,"-")
'hello world----'
>>>n4.rjust(4,"-")
'----hello world'

>>s = 'hello world'
>>p = str.maketrans("abcdefg","!@#$%^&")
>>>s.translate(p)
'h%llo worl$'

>>>b.isidentifier() #检测一段字符串是否可被当做标识符,即是否符合变量命名规则
True

三:字典操作
字典是一种key-value的数据类型
语法:
info = {
'stu1101':'jack'
'stu1102':'rose'
'stu1103':'eric'
}
特性:
1.dict是无序的
2.key必须是唯一的,天生去重

增加:
info['stu1104'] = 'lucy'
修改:
info['stu1101'] = 'marry'
删除:
info.pop('stu1101')
del info['stu1102']
info.popitem() #随机删除
查找:
‘stu1102' in info #标准用法
info.get('stu1102') #获取
info['stu1102'] #不存在会报错

info.values() #获取values
info.keys() #获取keys
info.setdefault('stu1103','alex')
b = {1:2,2:3}
info.update(b) #合并两个字典元素
info.items() #列出字典所有项目
dict.formkeys([1,2,3],'test') #通过列表生成默认的dict
{1:'test',2:'test',3,'test'}

循环dict
方法1:
for key in info:
print(key,info[key])
方法2:
for k,v in info.items(): #会把dict转换成list,s数据大时不要用
print(k,v)

四:集合操作
集合是一个无序的,不重复的数据组合,主要作用如下:
1.去重,把一个列表变成集合,就自动去重了
2.关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作:
s = set([1,2,3,4]) #创建一个数值集合
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([12,13,14]) #在s中添加多项
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中的每一个元素都在a中
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的一个浅复制

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

基本操作:
f = 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‘表示处理二进制文件
rb
wb
ab

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


六:字符编码与转码
需知:

1.在python2默认编码是ASCII, python3里默认是utf-8
2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),utf-8就是unicode
3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

posted @ 2017-01-03 22:10  eric_yi  阅读(112)  评论(0)    收藏  举报