1.容器类数据结构
1.1 列表List ---- 内部存着的是地址,指针
(1)写在[ ]内用逗号分开的元素列表,python中存放有序对象的容器。list中的元素类型可以不同,可以存放任何数据类型:数值、布尔型、字符串等。
(2)类似于字符串,可以被索引和切片,list切片后返回一个所需元素的新list,切片格式:变量[头下标:尾下标]
(3) + 是列表连接运算符 * 是重复操作
(4)list内置了append()/insert()/pop()等方法
(5)list的元素是可以改变的
eg:
1.2 元组Tuple
(1)写在()内用逗号隔开的有序集合,元组中的数据类型可以不同
(2)tuple的元素不能修改 ----- 指的是指向不变
(3)可以被索引和切片
(4)可以使用 + * 操作符
(5)构造包含0或1个元素的元组,需注意
eg:
1.3 字典Dict
(1)无序对象的集合
(2)元素是通过键来存取的
(3)一种映射类型,{key, value}键值对,key 必须是不可变类型,且不能重复
(4)内置函数clear()/keys()/values()等
(5)空字典创建用{ }
(6)dict的第一个特点是查找速度快,而且查找的速度与元素的个数无关,而list的查找速度是随着元素的增加而逐渐下降的;第二个特点是存储的key-value序对是没有顺序的;第三个特点是作为key得到元素是不可变的,所以list不能作为key。dict的缺点是占用内存大,还会浪费很多内容。
eg:
1.4 集合Set
(1)无序不重复元素的集合
(2)功能:成员关系测试和删除重复元素
(3)创建是调用set()并传入一个list,重复元素自动过滤
(4)内置函数:add()/remove()
eg:
1.5 list,tuple,dict,set区别
1 .list
list是一个使用方括号括起来的有序元素集合;
List 可以作为以 0 下标开始的数组,任何一个非空 list 的第一个元素总是 L[0],负数索引从 list 的尾部开始向前计数来存取元素。任何一个非空的 list 最后一个元素总是 L[-1];
有分片功能,两个list可以相加;
append 向 list 的末尾追加单个元素;
insert 将单个元素插入到 list 中;
extend 用来连接 list,使用一个 list 参数进行调用;
append 接受一个参数, 这个参数可以是任何数据类型, 并且简单地追加到 list 的尾部;
index 在 list 中查找一个值的首次出现并返回索引值;
要测试一个值是否在 list 内, 使用 in, 如果值存在, 它返回 True, 否则返为 False ;
remove 从 list 中删除一个值的首次出现;
pop 可以删除 list 的最后一个元素, 然后返回删除元素的值,用索引删除制定位置的值;
2.tuple
tuple是不可变的list,创建了一个tuple就不能以任何方式改变它;
定义tuple是将整个元素集是用小括号括起来,是有序集合;
tuple的索引与list一样从0开始,所以一个非空的tuple的第一个元素总是t[0];
负数索引与 list 一样从 tuple 的尾部开始计数;
与 list 一样分片 (slice) 也可以使用。分割一个 tuple 时, 会得到一个新的 tuple;
没有 append、extend、remove或pop方法以及index方法;
可以使用in来查看一个元素是否存在于tuple 中。
3.dict
dict定义了键和值之间的一一对应关系,每个元素都是一个key-value对;
整个元素集合用大括号括起来,有序集合;
可以通过 key 得到value, 但不能通过vaule获取 key;
在一个 dict中不能有重复的 key, 并且 key 是大小写敏感的;
键可以是数字、字符串或者是元组等不可变类型;
用del使用key可以删除dict中的独立元素;
用clear可以清除dict中的所有元素。
4.set
set是建立一系列无序的,不重复的元素;
创建set的方式是调用set()并传入一个list,list的元素将作为set的元素;
set和dict的唯一区别仅在于没有存储对应的value。
1.6 数据类型转换
函数描述 int(x [,base])
将x转换为一个整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
str(x)
将对象 x 转换为字符串
repr(x)
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)
将序列 s 转换为一个元组
list(s)
将序列 s 转换为一个列表
set(s)
转换为可变集合
dict(d)
创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
unichr(x)
将一个整数转换为Unicode字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
1.7常用方法
(1)list.clear() ----- 清空列表
2、sorted()函数
2.1 sort()与sorted()函数
python3 sorted取消了内置cmp函数
(1)对给定的List L进行排序:
方法1.用List的成员函数sort进行排序
方法2.用built-in函数sorted进行排序
--------------------------------sorted---------------------------------------
>>> help(sorted)
Help on built-in function sorted in module __builtin__:
sorted(...)
sorted(iterable,key=None, reverse=False) --> new sorted list
---------------------------------sort----------------------------------------
>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort( key=None, reverse=False) -- stable sort *IN PLACE*;
-----------------------------------------------------------------------------
iterable:是可迭代类型;
key:接收一个函数,且函数只接受一个元素,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。
注;一般来说,key可以使用lambda表达式。
sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表。
2.2 sorted()函数
key值:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave','B', 10)]
sorted(students,key=lambda s: x[2]) #按照年龄来排序
结果:[('dave','B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
eg:
3、python中pass语句的作用总结:
pass表示不作任何事情,一般用作占位语句
(1)pass在函数中
当你在编写一个程序时,执行语句部分思路还没有完成,这时你可以用pass语句来占位,也可以当做是一个标记,是要过后来完成的代码
(2)pass在循环中
pass也常用于为复合语句编写一个空的主体,比如说你想一个
while语句的无限循环,每次迭代时不需要任何操作
pass语句用法总结:1、空语句,什么也不做 2、在特别的时候用来保证格式或是语义的完整性
4、input
input()返回值默认是字符串,若要与整数比较,需转化为整数