Python之数据类型 二
2015-09-24 10:30
411 查看
数据类型(二)
列表listpython中的列表有些类似于C语言中的数组,但是比数组更加强大。列表是以“[]”包围的数据集合,不同列表元素已“,”分隔。列表相较于C语言中数组强大的地方在于,一个列表可以存放不同类型的数据,同样也可以存放字符串、列表、元组、字典等python数据结构。同时可以根据索引值来访问列表中的元素。可以对列表进行排序、添加、删除等操作,改变列表的成员。
常用列表操作
列表操作 | 描述 |
---|---|
list.append() | 在列表尾部添加成员 |
list.count(x) | 统计列表中参数x出现的次数 |
list.extend(L) | 向列表中追加另一个列表L |
list.index(x) | 获得参数x在列表中的位置 |
list.insert() | 向列表中插入数据 |
list.pop() | 删除列表中的成员 |
list.remove() | 删除列表中的成员 |
list.reverse() | 将列表中的成员顺序颠倒 |
list.sort() | 对列表中的成员进行排序 |
#在list1中利用append()函数追加了字符串成员'sunshine' >>> list1=['python','Django',['123','789']] >>> list1.append('sunshine') >>> list1 ['python', 'Django', ['123', '789'], 'sunshine'] #调用count()函数获得list2中成员'abc'的个数 >>> list2=['abc','123','abc','ccd','abc'] >>> list2.count('abc') 3 #调用extended()函数向list1中追加list3 >>> list3=['vera','love'] >>> list1.extend(list3) >>> list1 ['python', 'Django', ['123', '789'], 'sunshine', 'vera', 'love'] #调用index()函数,获得list1成员'sunshine'的位置 >>> list1 ['python', 'Django', ['123', '789'], 'sunshine', 'vera', 'love'] >>> >>> list1.index('sunshine') 3 #调用insert()函数在list1的索引为2的位置插入成员'java' >>> list1 ['python', 'Django', ['123', '789'], 'sunshine', 'vera', 'love'] >>> list1.insert(2,'java') >>> list1 ['python', 'Django', 'java', ['123', '789'], 'sunshine', 'vera', 'love'] #调用pop()函数对list1做删除成员操作 #不传参数,默认删除列表尾部成员 #传入列表索引,表示删除参数索引位置的列表成员 #函数返回删除的列表成员 >>> list1 ['python', 'Django', 'java', ['123', '789'], 'sunshine', 'vera', 'love'] >>> list1.pop() 'love' >>> list1 ['python', 'Django', 'java', ['123', '789'], 'sunshine', 'vera'] >>> list1.pop(2) 'java' >>> list1 ['python', 'Django', ['123', '789'], 'sunshine', 'vera'] #remove()函数传入需要删除的元素,从列表中删除该元素 >>> list1 ['Django', ['123', '789'], 'sunshine', 'vera'] >>> list1.remove('vera') >>> list1 ['Django', ['123', '789'], 'sunshine'] #调用reverse()函数,对列表进行倒置操作 >>> list1 ['Django', ['123', '789'], 'sunshine'] >>> list1.reverse() >>> list1 ['sunshine', ['123', '789'], 'Django'] #调用sort()函数对列表成员进行排序 #不同类型成员进行排序是无效的 >>> list4=[1,3,2,4,9,5] >>> list4.sort() >>> list4 [1, 2, 3, 4, 5, 9] >>> list5=['json','python','django'] >>> list5.sort() >>> list5 ['django', 'json', 'python']
元组tuple
元组的特性基本跟列表相同,元组以“()”包围,成员以“,”分隔。与列表不同的是,元组中的数据一旦确立就不能被改变。
#元组的创建,利用下标的方法获得元组成员 >>> tuple1=(1,2,3,4,5,6) >>> tuple1 (1, 2, 3, 4, 5, 6) >>> tuple1[2] 3 #元组是不可被修改的 >>> tuple1[1]=0 Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> tuple1[1]=0 TypeError: 'tuple' object does not support item assignment #元组的切片操作 >>> tuple1[:] (1, 2, 3, 4, 5, 6) >>> tuple1[:3] (1, 2, 3) >>> tuple1[2:] (3, 4, 5, 6) #元组创建的关键 #创建单个元素的元组时需要添加',' >>> type((1)) <class 'int'> >>> type((1,)) <class 'tuple'> >>> temp=2,3,4 >>> type(temp) <class 'tuple'>
字典dict
字典是python中比较特别的一种数据类型,是以{}包围的数据集合,字典与列表最大的区别是,字典是无序的,所以字典是不能根据索引访问数据成员的。字典是可变的,字典可以包含任何数据类型。字典中的成员是以”键:值”对的形式存在的。所以很显然,可以通过“键”去访问对应的“值”。
常用字典操作
字典操作 | 描述 |
---|---|
dic.clear() | 清空字典 |
dic.copy() | 复制字典 |
dic.get(k) | 获得键值k所对应的值 |
dic.has_key(k) | 判断是否包含键k |
dic.items() | 获得由键和值组成的列表 |
dic.keys() | 获得键的列表 |
dic.pop(k) | 删除键k |
dic.update() | 更新成员 |
dic.values() | 获得值的列表 |
#创建字典 >>> dic={'vera':'470494530','sunshine':'cj','apple':'love'} >>> dic1=dic.copy() #复制字典 >>> dic1 {'sunshine': 'cj', 'vera': '470494530', 'apple': 'love'} >>> dic['orange']='your' #增加成员 >>> dic {'sunshine': 'cj', 'vera': '470494530', 'apple': 'love', 'orange': 'your'} >>> dic.items() #获得键和值组成的列表 dict_items([('sunshine', 'cj'), ('vera', '470494530'), ('apple', 'love'), ('orange', 'your')]) >>> dic.keys() #获得键的列表 dict_keys(['sunshine', 'vera', 'apple', 'orange']) >>> dic.values() #获得值的列表 dict_values(['cj', '470494530', 'love', 'your']) >>> dic.pop('vera') #删除键为'vera'的成员 '470494530' >>> dic {'sunshine': 'cj', 'apple': 'love', 'orange': 'your'} >>> dic.get('sunshine') #获得键为'sunshine'的成员的值 'cj' >>> dic.update({'banana':'perfect'}) >>> dic #更新成员的值,没有则添加 {'sunshine': 'cj', 'banana': 'perfect', 'apple': 'love', 'orange': 'your'} #清空字典 >>> dic.clear() >>> dic {}
文件file
file也可以看作是python中数据类型。打开一个文件时返回一个文件对象。
文件的打开和关闭
open(filename,mode,bufsize)
close()
filename: 要打开的文件名(完整路径)
mode: 可选参数,文件打开模式,默认为’r’,只读模式
bufsize: 可选参数,缓冲区大小
文件的打开模式
打开模式 | 执行操作 |
---|---|
‘r’(default) | 以只读方式打开文件(默认) |
‘w’ | 以写入的方式打开文件,会覆盖已存在的文件 |
‘x’ | 如果文件已存在,使用此模式会引发异常 |
‘a’ | 以写入模式打开,若文件存在,则在末尾追加写入 |
‘b’ | 以二进制模式打开文件 |
‘t’ | 以文本模式打开(默认) |
‘+’ | 可读写模式(可添加到其他模式中使用) |
‘U’ | 通用换行符支持 |
文件对象方法 | 执行操作 |
---|---|
file.close() | 关闭文件 |
file.read([size=-1]) | 从文件读取size个字符,当未给定size或给定负值时,读取剩余所有字符,然后作为字符串返回 |
file.readline([size=-1]) | 从文件中读取并返回一行(包括行结束符),如果size有定义则返回size个字符 |
file.write(str) | 将字符串str写入文件 |
file.writelines(seq) | 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象 |
file.seek(offset,from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节 |
file.tell() | 返回当前在文件中的位置 |
file.truncate([size=file.tell()]) | 截取文件到size个字节,默认是截取到文件指针当前位置 |
file.readlines() | 将整个文件按行读入列表中 |
>>> f=open('F:\\test.txt') #以只读方式打开文件 >>> f.read() #将整个文件读取到字符串中 'I love vera!\nIn my heart,vera is the most beautiful girl.\nMany years age,i become friend with her.django\n' >>> f.seek(0,0) #移动文件指针至开头 0 >>> list(f) #字符串转化为列表 ['I love vera!\n', 'In my heart,vera is the most beautiful girl.\n', 'Many years age,i become friend with her.django\n'] >>> f.seek(0,0) 0 >>> f.readline() #从文件中读取并返回一行(包括行结束符) 'I love vera!\n' >>> f.seek(0,0) 0 >>> f.readlines() #将整个文件按行读入列表中 ['I love vera!\n', 'In my heart,vera is the most beautiful girl.\n', 'Many years age,i become friend with her.django\n'] >>> f.close() #关闭打开文件 f=open('F:\\test.txt','r+') >>> f.seek(0,2) 109 >>> f.write('python\n') #向文件中写入字符串 7 >>> f.seek(0,0) 0 >>> f.read() 'I love vera!\nIn my heart,vera is the most beautiful girl.\nMany years age,i become friend with her.django\npython\n' #向文件中写入一个列表 >>> f.writelines(['sunshine\n','with_vera\n']) >>> f.seek(0,0) 0 >>> f.read() 'I love vera!\nIn my heart,vera is the most beautiful girl.\nMany years age,i become friend with her.django\npython\nsunshine\nwith_vera\n' >>> f.seek(0,0) 0 >>> f.tell() #获取当前文件指针位置 0
文件操作对于数据的存储与读取有着重要的意义。
初学者的python学习经验,希望可以互相帮助,共同进步。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法