您的位置:首页 > 编程语言 > Python开发

Python之数据类型 二

2015-09-24 10:30 573 查看

数据类型(二)

列表list

python中的列表有些类似于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 数据结构