Python之数据类型 二

来源:互联网 发布:软件标识 编辑:程序博客网 时间:2024/06/06 20:39

数据类型(二)

  • 列表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]=0Traceback (most recent call last):  File "<pyshell#3>", line 1, in <module>    tuple1[1]=0TypeError: '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学习经验,希望可以互相帮助,共同进步。

0 0