一、列表和元组
python提供了两个可保存大量数据的类型:列表和元组
1.1 创建和操作列表
列表是以方括号“[]”包围的数据集合,不同成员间以“,”分隔,列表中可以包含任何数据类型,当然也可以包含列表,列表可以通过序号来访问其中的成员,在脚本中可以实现对列表进行排序,添加。删除等操作,以改变列表中某一成员的值。
列表操作 | 描述 |
---|---|
list.append() | 追加成员 |
list.count(x) | 计算列表中参数x的出现次数 |
list.extend(L) | 向列表中追加另一个列表L |
list.index(x) | 获得参数x在列表中的位置 |
list.insert() | 向列表中插入数据 |
list.pop() | 删除列表中最后一个值,并返回被删除的值 |
list.remove() | 删除列表中的成员 |
list.reverse() | 将列表中成员的顺序颠倒 |
list.sort() | 对列表成员进行排序 |
在python,除了可以使用上表的操作外,还可以使用类似于字符串的分片和索引操作列表。
简单示例
>>> list = [] //定义一个空列表
>>> list.append(1) //向列表追加1
>>> list.count(2) //查看2的个数
0
>>> list.extend([2,3,4,5]) //追加另一个列表
>>> list
[1, 2, 3, 4, 5]
>>> list.index(3) //获得3所在位置
2
>>> list.insert(2,6) //在列表第三个位置处插入数据6
>>> list
[1, 2, 6, 3, 4, 5]
>>> list.pop() //删除列尾元素5,默认删除尾部元素
5
>>> list
[1, 2, 6, 3, 4]
>>> list.pop(2) //删除列表第三个位置元素
6
>>> list
[1, 2, 3, 4]
>>> list.remove(4) //删除列表元素4
>>> list
[1, 2, 3]
>>> list.reverse() //将列表数据元素倒序
>>> list
[3, 2, 1]
>>> list.sort() //正序
>>> list
[1, 2, 3]
1.2 创建和操作元组
元组的特性与列表基本相同,元组是以圆括号“()”包围的数据集合。与列表不同的是,元组中的数据,一旦确定就不能修改,元组可以使用在不希望数据被其他操作改变的场合。
因为其内容不能被改变,因此不能使用列表的一些改变操作的函数,只能对其使用分片和索引操作。
简单示例
(紧接上面列表操作)
>>> tuple = ( 'a','b','c' ) //定义一个元组
>>> list.insert(3,tuple) //列表中插入元组
>>> list
[1, 2, 3, ('a', 'b', 'c')]
>>> list[3] //使用索引查看第四个元素
('a', 'b', 'c')
>>> list[1:3] //分片
[2, 3]
>>> tuple[1:-1] //分片
('b',)
>>> tuple.count('a') //查看a的个数
1
定义一个含有一个元素的元组
>>> t = (1)
>>> t
1
## 定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
>>> t = (1,)
>>> t
(1,)
二、字典
字典是python中一个比较特殊的数据类型,一大括号“{}”包围的数据集合,字典与列表最大的不同在于字典是无序的,在字典中通过键来访问成员。
与列表相似,字典也是可变的,可以包含任何其他类型,字典中成员的位置是象征性的,并不能通过其位置来访问成员,字典中的成员以“键:值”的形式声明。
定义字典的几种方式:
>>> a = {"one":1,"two":2,"three":3}
>>> print(a)
{'one': 1, 'two': 2, 'three': 3}
>>> b = dict(one=1,two=2,three=3)
>>> print(b)
{'one': 1, 'two': 2, 'three': 3}
>>> c = dict(zip(["one","two","three"],[1,2,3]))
>>> print(c)
{'one': 1, 'two': 2, 'three': 3}
>>> c = dict(zip(["one","two","three"],[1,2])) ## 这里给了三个键值,但是只有两个值,所以第三个键值不起作用,所以键值与值必须成对出现。
>>> print(c)
{'one': 1, 'two': 2}
>>> d = dict([("one",1),("two",2),("three",3)])
>>> print(d)
{'one': 1, 'two': 2, 'three': 3}
>>> e = dict({"one":1,"two":2,"three":3})
>>> print(e)
{'one': 1, 'two': 2, 'three': 3}
关于字典的函数 :
字典操作 | 描述 |
---|---|
dic.clear() | 清空字典 |
dic.copy() | 复制字典 |
dic.get(k) | 获得键k的值 |
dic.has_key(k) | 是否包含键k |
dic.items() | 获得由键和值组成的列表 |
dic.keys() | 获得键的列表 |
dic.values() | 获得值的列表 |
dic.pop(k) | 删除键 |
dic.update() | 更新成员 |
简单示例
>>> dic = { 'apple':2, 'orange':1} //定义一个字典
>>> dic.copy() //复制字典
{'apple': 2, 'orange': 1}
>>> dic
{'apple': 2, 'orange': 1}
>>> dic['banana'] = 5 //增加一项
>>> dic
{'apple': 2, 'orange': 1, 'banana': 5}
>>> dic.items() //获取列表
dict_items([('apple', 2), ('orange', 1), ('banana', 5)])
>>> dic.pop('apple') //通过键值删除,并返回其值
2
>>> dic
{'orange': 1, 'banana': 5}
>>> dic.keys() //获取键的列表
dict_keys(['orange', 'banana'])
>>> dic.values() //获取值的列表
dict_values([1, 5])
>>> dic.update({'banana':3}) //更新键值
>>> dic/
{'orange': 1, 'banana': 3}
>>> dic['orange'] //通过键获取值
1
>>> dic.clear() //清空字典
>>> dic
{}
zip 函数
>>> b = zip([1,2,3],[1,2,3])
>>> print(b)
<zip object at 0x00F51878> # 返回的是一个对象,内存中的地址。
>>> list(b)
[(1, 1), (2, 2), (3, 3)]
三、文件
文件也可以看作是python的数据类型,当使用python内置函数open打开一个文件后,就返回一个文件对象。
原型open (filename, mode, bufsize)
参数含义:
- filename : 要打开的文件名
- mode:可选参数,文件打开模式( r:只读,w:写操作,b:二进制))
- bufsize:可选参数,缓冲区大小
文件操作 | 描述 |
---|---|
file.read() | 将整个文件读入字符串中 |
file.readline() | 读入文件一行到字符串中 |
file.readlines() | 将整个文件按行读入到列表中 |
file.write() | 向文件写入字符串 |
file.writelines() | 向文件中写入一个列表 |
file.close() | 关闭打开文件 |
简单示例
>>> file=open("C:\\Users\\lenovo\\Desktop\\two.txt" ,'w') //打开一个文件,这里我放在桌面上,文件内容空白
>>> file.write('python\n') //向文件中写入字符
7
>>> a = [] //定义空列表
>>> for i in range(10): //循环向列表中添加字符
... s = str(i) + "\n"
... a.append(s)
...
>>> file.writelines(a) //将列表写入文件
>>> file.close() //关闭文件
>>> file=open("C:\\Users\\lenovo\\Desktop\\two.txt" ,'r') //重新以读方式打开文件
>>> s = file.read() //读取整个文件
>>> print(s) //打印字符串
python
0
1
2
3
4
5
6
7
8
9
>>> file.close() //关闭文件
## 关闭文件,然后用readlines读取文件
##如果不关闭文件,则读取内容为空,因为文件内容已经被读入到s中
>>>> file=open("C:\\Users\\lenovo\\Desktop\\two.txt" ,'r')
>>> I = file.readlines() //将文件读取到列表中
>>> print(I)
['python\n', '0\n', '1\n', '2\n', '3\n', '4\n', '5\n', '6\n', '7\n', '8\n', '9\n']
readlines函数
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开文件
fo = open("runoob.txt", "r")
print "文件名为: ", fo.name
for line in fo.readlines(): #依次读取每行
line = line.strip() #去掉每行头尾空白
print "读取的数据为: %s" % (line)
# 关闭文件
fo.close()