
Python 基础二
Python 基础二
知识点
1、字符串(str)
1.1 字符串的定义
用单引号,双引号,三个引号包围的字符
1 | str = 'hello' # 定义字符串变量 |
1 | # 字符串 |
1.2 下标和切片
1 | # 切片 |
注:可用 dir(str) 查看 str. 可进行的操作
1 | # 遍历 ,for |
1.3 字符串的常见操作
如果有字符串 my_str =”hello world kkb”, 一下常见操作
1、find
检测 str 是否包含在 mystr 中,如果是返回开始索引值,否则返回-1
1 | my_str.find (str,start = 0,end = len(mystr)) |
例如:
1 | my_str = 'hello world kkb' |
2、index
和 find() 方法一样,不同的是如果 str 不在 my_str 那么会报错
1 | my_str.index(str,start = 0,end = len(my_str)) |
例如:
1 | my_str = "hello world kkb" |
3、count
返回 str 在 start 和 end 之间出现的次数
1 | mystr.count(str,start=0,end=len(mystr)) |
例如:
1 | mystr = "hello world kkb and kkb" |
4、replace
把 mystr 中的 str1 替换成为 str2 ,如果 count 指定则不超过 count 次
1 | mystr.replace(str1,str2,mystr.count(str1)) |
5、split
以 str 为分隔符切片 mystr ,如果 maxsplit 有指定值,则仅分割 maxsplit 个字符
1 | mystr.split(str='',2) |
6、capitalize
把字符串的第一个字符大写
1 | mystr.capitalize() |
7、title
1 | a = 'hello world' |
8、stratswith
检查字符串是否以 hello 开头,是则返回 True,否则返回 False
1 | mystr.startswith(hello) |
9、endswith
检查字符串是否以 obj 结束,如果是返回 Ture ,否则返回 False
1 | mystr.endswith(obj) |
10、lower
转换 mystr 中的大写字符为小写
1 | mystr.lower() |
11、upper
转换 mystr 中的小写为大写
1 | mystr.upper() |
12、ljust
返回一个元字符串左对齐,并且空格填充至长度 width 的新字符串
1 | mystr.ljust(width) |
13、rjust
返回一个元字符串右对齐,并且空格填充至长度 width 的新字符串
1 | mystr.rjust(width) |
14、center
返回一个字符串居中,并用空格填充至长度 width
1 | mystr.center(width) |
15、lstrip
删除 mystr 左边的空白字符
1 | mystr.lstrip() |
16、rstrip
删除 mystr 右边的空白字符串
1 | mystr.rstrip() |
17、strip
删除 mystr 字符串两端的空白符
1 | a = "\n \t kkb \t\n" |
18、rfind
类似于 find() 函数,不过是从右边开始查找
1 | mystr.rfind(str,strat=0,end=len(mystr)) |
19、rindex
类似于 index() 不过从右边开始查找
1 | mystr.rindex(str,start=0,end=len(mystr)) |
20、partition
把 mystr 以 str 分割成三部分,str 前,str,str 后
1 | mystr.partition(str) |
21、rpartition
类似于 partition 只不过从右边开始
1 | mystr.rpartition(str) |
22、splitlines()
按照分格符,返回一个包含各行作为元素的列表
1 | mystr.splitlines() |
23、join
mystr 中的每个元素后面插入 str ,构造有个新字符串
1 | mystr.jion(str) |
2、列表(list)
2.1 列表简介
python 中内置一种数据类型列表:list。 list 是一种有序的集合,可以随时添加和删除其中的元素,写在方括号之间、用逗号分隔。列表内的项目不必是相同的类型。
例如:
1 | list1 = ['spam','eggs',100,1234] |
2.2、列表的常见操作
1、列表的长度
1 | # 用len()函数可以获得list元素的个数; |
2、列表的访问
用索引来访问 list 中的每一个元素,记得索引从 0 开始:
1 | nameslist = ['xiaowang','xiaozhang','xiaohua'] |
- 注意:当索引超出范围,python 会报错 indexError,所以确保索引不要越界,最后一个元素的索引是 len(nameslist)-1, 或者直接用-1。
1 | nameslist = ['xiaowang','xiaozhang','xiaohua'] |
3、列表的切片
切片:根据下标的范围获取一部分数据,比如:列表,字符串
1 | 切片的使用格式 |
1 | # 使用切片方法获得一部分数据 |
4、添加元素(append,extend,insert)
通过 append 可以向列表添加元素
1 | # 定义变量A,默认有三个元素 |
通过 extend 可以将一个集合中的元素逐一添加到列表中
1 | a = [1,2] |
5、修改元素
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
1 | # 定义变量 A ,有 3 个元素 |
6、查找元素
所谓查找元素,就是看看指定元素是否存在
python 中查找的常用方法为:
- in 存在,如果存在那么返回结果为 True 否则为 False
- not in 不存在,如果不存在那么结果为 Ture 否则为 False
1 | # 待查找的对象 |
index 和 count 与字符串中的用法相同
1 | a = ['a','b','c','a','b'] |
7、删除元素
列表元素常用删除方法:
- del: 根据下标进行删除
- pop:删除最后一个元素
- remove: 根据元素的值进行删除
(1)del
1 | list1 = ['a','b','c','d','e','f'] |
(2)pop
1 | list2 = ['a','b','c','d','e','f'] |
(3)remove
1 | list3 = ['a','b','c','d','e','f'] |
(4)排序
sort 方法是将 list 按特定殊勋重新排列,默认为由小到大,参数 reverse=true 可改为倒序,由大到小
reverse 方法是将 list 逆置
1 | a = [1,4,2,3] |
2.3、列表的遍历
1、使用 for 循环
为了有效的输出列表的每个数据,可以使用循环来完成
1 | namesList = ['xiaowang','xiaozhang','xiaohua'] |
2、使用 while 循环
为了更有效的输出列表的每个数据,可以使用循环来完成
1 | namesList = ['xiaowang','xiaozhang','xiaohua'] |
3、元组(tuple)
另外一种有序列表叫元组:tuple, tuple 和 list 类似,但是 tuple 一旦初始化不能更改,比如同样累出同学的名字:
1 | classmates = ('Michael','Bob',Tracy) |
现在,classmates 这个 tuple不能变了,它没有 append(),insert() 这样的方法。其他获取元素的方法和 list 一样,可以正常使用 classmate[0],xlassmate[1],但是不能赋值成为另外的元素。
不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。不过可能,能用tuple代替list就尽量用tuple。
1 | # 定义一个 tuple 可以写成() |
但是,如果要定义一个只有1个元素的tuple, 如果这么定义:
1 | t = (1) |
定义的不是tuple,而是1这个数!因为这个()既可以表示tuple,也可以此表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况看小括号计算,计算结果是 1
所以只有一个元素的tuple定义时必须加个逗号 ,来消除歧义
1 | t = (1,) |
python在显示只有一个元素的tuple时,也会加个逗号,以免产生误解。
1 | t = ('a','b',['A','B']) |
4、字典(dict)
4.1、字典简介
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中
举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:
1 | names = ['Micheal','Bob','Tracy'] |
给定一个名字,要查找对应的成绩,就先要在names中找到对顶的位置,再从scores取出对应的成绩,list越长,耗时越长。
如果用 dict 实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表多大,查找速度都不会变慢。用Python写一个dict如下:
1 | d = {'Micheal':95,'Bob':75,'Tracy':85} |
由于一个 key 只能对应一个value,所以,多次对一个key放入value,后面的值会吧前面的值冲掉:
1 | d['Jack'] = 90 |
如果key不存在,dic就会报错:
1 | d['Thomas'] |
4.2 字典的常规操作
(1)修改元素
每个字典中的数据是可以修改的,只要通过key找到,即可修改
1 | info = {'name':'kkb','sex':'f','address':'中国北京'} |
(2) 添加元素
1 | info = {'name':'kkb','sex':'f','address':'中国北京'} |
如果在使用 变量名[‘键’] = 数据 时,这个‘键’在字典中,不存在,那么就会新增这个元素。
添加新的元素
1 | info = {'name':'kkb','sex':'f','address':'中国北京'} |
(3)删除元素
对字典进行删除操作,有以下几种
- del
- clear()
del 删除指定的元素
1 | info = {'name':'kkb','sex':'f','address':'中国北京'} |
del 删除整个字典
1 | info = {'name':'kkb','sex':'f','address':'中国北京'} |
clear 清楚整个字典
1 | info = {'name':'kkb','sex':'f','address':'中国北京'} |
(4)len()
测量字典中,键值对的个数
1 | d1 = {'name':'kkb','sex':'f','address':'中国北京'} |
(5)keys
返回一个包含字典所有key的列表
1 | d1 = {'name':'kkb','sex':'f','address':'中国北京'} |
(6)values
返回一个包含字典所有value的列表
1 | d1 = {'name':'kkb','sex':'f','address':'中国北京'} |
(7)items
返回一个包含所有(键,值)元组的列表
1 | d1 = {'name':'kkb','sex':'f','address':'中国北京'} |
(8)has_key (python3 已取消)
dict.has_key(key) 如果key在字典中,返回Ture, 否则返回 False。
5、集合(set)
集合(set)是一个无序不重复元素序列
可以使用大括号{} 或者set() 函数创建集合,注意创建一个空集合必须使用 set(), 因为{} 是用来创建空字典的。
1 | # my_set = {1,4,'abc','hello'} |