一、数据类型
1、核心数据类型:
- 数字:int, long(python3.5已经没有), float, complex, bool
- 字符:str, unicode
- 列表:list
- 字典:dict
- 元组:tuple
- 集合:set(可变集合),frozenset(不可变集合)
- 文件:file
二、数字类型
python的数字字面量:整数,布尔型,浮点数,复数,所有数字类型均为不可变
数字操作:+ , -, *, /, //, **, %, -x, +x
三、列表
列表是一系列按照特定顺序排列的元素组成可以是字母、数字等;
在python中,列表用方括号[ ],来表示列表。作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。
1、列表的操作方法和函数
列表操作包含以下函数:
1、cmp(list1, list2):比较两个列表的元素
2、len(list):列表元素个数
3、max(list):返回列表元素最大值
4、min(list):返回列表元素最小值
5、list(seq):将元组转换为列表
列表操作包含以下方法:
1、list.append(obj):在列表末尾添加新的对象
2、list.count(obj):统计某个元素在列表中出现的次数
3、list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4、list.index(obj):从列表中找出某个值第一个匹配项的索引位置
5、list.insert(index, obj):将对象插入列表
6、list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7、list.remove(obj):移除列表中某个值的第一个匹配项
8、list.reverse():反向列表中元素
9、list.sort([func]):对原列表进行排序
10、list.append(): 在列表末尾添加一个元素
2、访问元素列表及切片
列表的访问可以是标准输出,也可以是通过索引或切片使用列表中元素的值;
与字符串的索引一样,列表索引从0开始,如果是反序,最后一个元素是 “-1”,倒数第二个元素的列下标识 “-2”。
列表可以进行截取、组合等。
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符。
#!/usr/bin/python # -*- coding: UTF-8 -*- china = ["Chinese","yellowskin",960,16,"北京"] #输出列表 print(china) #输出特定值,如第二个元素,即索引为1的; print(china[1]) #输出最后两个元素 print(china[-2:]) #输出前三个元素 print(china[:2]) #输出最后两个元素外的所有元素 print(china[:-2]) #输出第二到第五的元素; print(china[1:4]) #列表输出可以结合字符处理方法 print(china[1].title()) print(china[1].upper()) #循环访问列表的元素: for i in china: print(i)
3、修改、添加、删除列表元素
由于列表大多数情况下是动态的,那么他的元素、长度等都是不断变化的;
修改元素通过列下标直接赋值;
添加元素可以通过append()方法在末尾添加,可以通过insert()方法在特定位置添加;
删除元素可以通过pop()方法和del语句删除,当然你也可以通过del 删除整个列表;
#!/usr/bin/python # -*- coding: UTF-8 -*- china = ["Chinese","yellowskin",960,16,"北京"] #将列表第二个元素修改为“blackeyes” china[1] = "black eyes" print(china) #在列表末尾添加元素; china.append("Changjian") print(china) #在第三个前插入一个元素: china.insert(2,‘Shanghai‘) print(china) #列表中删除元素,del语句: del china[-2] print(china) #pop()方法删除任意元素: china.pop(2) print(china) #根据值删除元素 china.remove(960) print(china)
输出结果:
[‘Chinese‘, ‘black eyes‘, 960, 16, ‘北京‘]
[‘Chinese‘, ‘black eyes‘, 960, 16, ‘北京‘,‘Changjian‘]
[‘Chinese‘, ‘black eyes‘, ‘Shanghai‘, 960,16, ‘北京‘, ‘Changjian‘]
[‘Chinese‘, ‘black eyes‘, ‘Shanghai‘, 960,16, ‘Changjian‘]
[‘Chinese‘, ‘black eyes‘, 960, 16,‘Changjian‘]
[‘Chinese‘, ‘black eyes‘, 16, ‘Changjian‘]
4、对列表进行排序
对列表进行排序的方法有
sort() 对列表进行永久排序;
sorted() 对列表进行临时排序
reverse() 倒着打印列表,永久排序,恢复时可以再次调用reverse()
len() 取出列表的长度;
#!/usr/bin/python # -*-coding: UTF-8 -*- counts =[1,3,5,7,9,2,4,6,8,10] counts1= [] for i incounts: counts1.append(i) print(counts1) print(counts) counts.sort() print(counts) print(sorted(counts1)) print(counts1) counts1.reverse() print(counts1) print(len(counts))
5、遍历列表
5.1、for循环遍历列表和复制列表
counts =[1,3,5,7,9,2,4,6,8,10] counts1= [] for i incounts: counts1.append(i) print(counts1) print(counts)
5.2、创建数值列表
counts2 = [ j**3 for j in range(1,10)] print(counts2) type(counts2[2])
使用range创建数字列表
counts3 = list(range(1,21,2))
print(counts3)
type(counts3[2])
5.3、列表的简单统计
counter = list(range(1,21,2))
min(counter)
max(counter)
sum(counter)
四、元组
- 元组看起来犹如列表,但使用圆括号()来标识。定义元组后,就可以使用索引来访问其元素;
- 元组的遍历和列表一样可以使用for循环等;
- 元组是不能修改其元素的,但可以给存储元组的变量赋值;
- 括号()既可以表示元组,又可以表示数学公式中的小括号。所以,如果元组只有1个元素,就必须加一个逗号,防止被当作括号运算;
- 元组与列表的区别,元组它的关键是不可变性。
- 如果在程序中以列表的形式传递一个对象的集合,它可能在任何地方改变;如果使用元组的话,则不能。
- 元组提供了一种完整的约束。
1、字典基本操作
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
- 要获取字典中的值,可依次指定字典名和放在方括号内的键;如print(dict[‘key]’)
- 要添加键-值对,可依次指定字典名、用方括号括起来的键和对应的值;
- 使用字典存储大量数据或者编写能自动生成大量键-值得代码时,通常需要先定义一个空字典,如:dict = {}
- 要修改字典中的值,可依次指定字典名、用方括号括起来的键以及与该键相关的新值;
- 要删除键-值对,可使用del语句键对应的键-值对彻底删除。使用del语句必须指定字典名和要删除的键;
示例:
#coding:UTF-8 import string #定义一个空字典dict1 dict1 = {} #利用for循环给dict1赋值 i = 1 for word in string.ascii_lowercase: if i < 14: dict1[i] = word else: dict1[word] = i i += 1 print(dict1) #访问字典中的值 print(dict1[13]) print(dict1[‘o‘]) #添加键-值对 dict1[27] = "error" print(dict1[27]) #修改字典中的值 dict1[27] = "out of range" print(dict1[27]) #删除键值对 print(dict1[‘z‘]) del dict1[‘z‘] print(dict1)
2、遍历字典
在遍历字典前,先学习一下字典内置的函数和方法,在遍历时,结合函数和方法遍历输出;
python字典的函数。
方法 |
解释 |
len(dict) |
计算字典元素个数,即键的总数。 |
str(dict) |
输出字典以可打印的字符串表示。 |
type(variable) |
返回输入的变量类型,如果变量是字典就返回字典类型。 |
dict.clear() |
删除字典内所有元素 |
dict.copy() |
返回一个字典的浅复制 |
dict.fromkeys(seq [,value]) |
创建一个新字典,序列seq中元素作为字典的键,value(可选)作为字典所有键对应的初始值。--seq为一个列表; |
dict.get(key[, default=None]) |
返回指定键的值,如果值不在字典中返回default值(默认为none) |
key in dict |
如果键在字典dict里返回true,否则返回false。key -- 在字典中要查找的键 |
dict.items() |
以列表返回可遍历的(键, 值列表。 |
dict.keys() |
以列表返回字典中的所有值。 |
dict.setdefault(key, default=None) |
与get()类似, 但如果键不存在于字典中,将会添加键并将键值设为default。 |
dict.update(dict1) |
把字典dict1的键/值对更新到dict里。无返回值。 |
pop(key[,default]) |
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。否则,返回default值 |
popitem() |
随机返回并删除字典中的一对键和值。 |
#coding:UTF-8 import string #定义一个空字典dict1 dict1 = {} #利用for循环给dict1赋值 i = 1 for word in string.ascii_lowercase: if i < 14: dict1[str(i)] = word elif i > 14: dict1[word] = str(i) i += 1 print(dict1) #遍历所有的键-值对 for key,value in dict1.items(): print(key) print(value) print(dict1[‘1‘].upper()) #遍历字典中所有的键 for key in dict1.keys(): print(key) #按照顺序遍历字典中所有的键,可以用sorded()来实现 for key in sorted(dict1.keys()): print(key.upper() + "大爷的") #遍历字典中多有的值,并使用set()方法去重; dict1[‘27‘] = ‘a‘ print(dict1[‘27‘]) for value in set(dict1.values()): print(value) print(dict1) #字典的浅复制 dict2 =dict1.copy() print(dict2) #更新字典 dict3 = {} dict3.update(dict1) print(dict3) #删除字典内所有的元素 dict1.clear() print(dict1)
3、嵌套
字典除了单独使用外,经常会涉及到嵌套使用;列表、字典、元组等可以相互嵌套使用;
使用的方法和对应的列表、字典、元组的使用方法类似,不多做说明;