-
编写一个程序,交换指定字典的key和value。
例如:dict1={'a':1, 'b':2, 'c':3} --> dict1={1:'a', 2:'b', 3:'c'}
ict1={'a':1, 'b':2, 'c':3} dict2={} for key,value in dict1.items(): dict2[value]=key print(dict2)
-
编写一个程序,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
例如: 传入'12a&bc12d-+' --> 'abcd'
str1='12a&bc12d-+' str2='' for i in str1: if i.isalpha(): str2+=i print(str2)
-
写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
例如: 'abc' -> 'Abc' '12asd' --> '12asd'
str = 'xbshvsxbs' new_str='' if str[0].islower(): j=chr(ord(str[0])-32) new_str=j+str[1:] print(new_str)
-
写程序实现endswith的功能,判断一个字符串是否已指定的字符串结束
例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True 字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
str1='abc231ab' str2='1ab' len2=len(str2) if str1[-len2:] == str2: print(True) else: print(False)
-
写程序实现isdigit的功能,判断一个字符串是否是纯数字字符串
例如: '1234921' 结果: True '23函数' 结果: False 'a2390' 结果: False
str1='1234921' for i in str1: if not ('0' <= i <= '9'): print(True) break else: print(False)
-
写程序实现upper的功能,将一个字符串中所有的小写字母变成大写字母
例如: 'abH23好rp1' 结果: 'ABH23好RP1'
str1='abH23好rp1' new_str1='' for i in str1: if i.islower(): i=chr(ord(i)-32) new_str1+=i print(new_str1)
-
写程序获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
例如: 序列:[-7, -12, -1, -9] 结果: -1 序列:'abcdpzasdz' 结果: 'z' 序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98} 结果: 98
str1 = {'小明':90, '张三': 76, '路飞':30, '小花': 98} max_value=str1['小明'] if type(str1)== list or type(str1)== str: max_value=str1.max() elif type(str1) == dict: max_value=max(str1.values()) print(max_value)
-
写程序实现replace函数的功能,将指定字符串中指定的旧字符串转换成指定的新字符串
例如: 原字符串: 'how are you? and you?' 旧字符串: 'you' 新字符串:'me' 结果: 'how are me? and me?'
str1='how are you? and you?' str2=str1.split('you') str3='me'.join(str2) print(str3)
-
写程序实现split的功能,将字符串中指定子串作为切割点对字符串进行切割
例如:原字符串: 'how are you? and you?' 切割点: 'you' 结果: ['how are ', '? and ', '?']
str1 = 'how are you? and you?' str2 = 'you' result = str1.split(str2) print(result)
-
用思维导图(xmind)总结四大容器:列表、字典、元组、集合
四大容器:
-
列表(str)
-
列表的标志:[]
-
列表的特点:a.有序性(支持下标操作,支持索引);b.可变性(支持增删改操作)
-
列表的增、删、改、查
-
增:a、列表.append(元素) ——在列表的最后添加元素;
b、列表.insert(下标,数据) —— 在列表指定元素前添加元素。
-
删:a、del 列表[下标] —— 删除列表中指定下标对应的元素;
b、列表.remove(元素) —— 删除列表中指定元素。
c、列表.pop() —— 取出列表最后一个元素;
列表.pop(下标) —— 取出列表指定下标对应的元素。
-
改: 列表[下标]=新元素 —— 修改列表中指定下标对应的元素为新元素。
-
查:a、查单个 —— 列表[下标] - 获取指定列表中指定下标对应的元素。
b、切片 —— 列表[开始下标:结束下标:步长] - 根据下标和步长获取指定列表中的部分元素。
c、遍历 —— 获取列表中所有的元素。
(1)for 变量 in 列表:
(2)for 变量 in range(len(列表)):
(3)for 变量1,变量2 in enumerate(列表):
-
-
列表相关函数:a、sum(列表);b、max(列表)、min(列表);c、sorted(列表)、sorted(列表,reverse) —— 降序 ;
d、len(列表); e、list(序列)
-
列表相关方法:a、列表.clear() —— 清空列表;b、列表.copy() ; c、列表.count(数据); d、列表.extend(序列) —— 将序列中所有的元素全 部添加到列表的最后; e、列表.index(数据) ;f、列表.reverse();g、列表.sort();
-
列表推导式:a、[表达式 for 变量 in 序列];b、[表达式 for 变量 in 序列 if 条件语句]。
-
列表相关操作:a、支持数学运算符:+、*;b、支持in和not in操作。
-
-
字典(dict)
-
字典的标志:{}
-
字典的特点:a、可变性(支持增删改操作);b、无序性。
-
字典的增、删、改、查
-
增:a、字典[键] = 值
b、字典.setdefault(键,值) —— 在字典中添加指定的键值对;如果键存在,会保留原来的值。
-
删:a、del 字典[键] —— 删除字典中指定键对应的键值对。
b、字典.pop(键) —— 取出字典中指定键对应的值。
-
改:字典[键] = 值 —— 将字典中指定键对应的值修改成指定的新值。
-
查:
a、查单个:(1)字典[键];
(2)字典.get(键) —— 获取字典中指定键对应的值,如果键不存在不报错,并且返回None;字典.get(键,默认值) —— 获取 字典中指定键对应的值,如果键不存在不报错,并且返回默认值。
b、遍历:(1)for 键 in 字典: (2)for 键,值 in 字典.items():
-
-
字典的相关函数:a、len(字典) —— 获取字典中键值对的数量;
b、dict(数据) —— 将指定的数据转换为字典。
-
字典的相关方法:a、字典.clear() ;b、字典.copy() ; c、字典.keys() —— 获取字典所有的键,返回一个序列;d、字典.values() —— 获取字典所有的值,返回一个序列;e、字典.items() —— 将字典转换为一个序列,并且将每一个键值对转换成一个元组。
-
字典相关操作:a、不支持+、*、>、<、>=、<= 的操作;b、支持in 和 not in。
-
-
元组(tuple)
-
元组的标志:()
-
元组的特点:a、有序性(支持下标、索引操作);b、不可变性(不支持增删改操作)。
注意:只有一个元素的元组在表示的时候,唯一的元素后面必须添加逗号。
-
元组的查操作:a、查单个:元组[下标];
b、切片:元组[开始下标:结束下标:步长] (左闭右开区间);
c、遍历:
(1)for 变量 in 元组:
(2)for 变量 in range(len(元组)):
(3)for 变量1,变量2 in enumerate(元组):
-
元组相关方法:元组.count()、元组.index()。
-
元组相关函数:len()、max()、min()、sorted()、sum()、tuple()—>转换为元组类型。
-
元组就是不可变的列表,列表中与可变无关的操作,元组都支持。
-
-
字符串
-
字符串的标志:’ ’ 和" "。
-
字符串的特点:a、有序性(支持下标操作);b、不可变性(不支持增删改操作)。
-
元素:字符串的元素叫做字符。
注意:a、字符串的元素(字符)分为两种:普通字符、转义字符;b、字符串不可变,所有可变操作都是在创建对应的新字符串。
常见转义字符:a、\n:换行 ;b、\t:水平制表符(相当于按Tab键);c、\ ':表示一个普通的单引号;d、\ ":表示一个普通的双引号。
e、\ :表示一个普通的反斜杠。r字符串:让字符串中所有的转义字符功能消失。
-
字符串的查操作:字符串获取元素和列表获取元素的语法一模一样。
-
字符串相关方法:
a、字符串.join(序列) —— 将序列中的元素用指定的字符串拼接在一起,形成一个新的字符串。
b、字符串1.split(字符串2) ;
字符串1.split(字符串2,N) —— 将字符串1中前n个字符串2作为切割点对字符串1进行切割。
c、字符串1.replace(字符串2,字符串3);
字符串1.replace(字符串2,字符串3,n)。
d、字符串.strip() —— 删除字符串左右两端的空白字符;
字符串.rstrip() —— 删除字符串右两端的空白字符;
字符串.lstrip() —— 删除字符串左两端的空白字符;
e、字符串1.find(字符串2,开始下标,结束下标) ;
字符串1.index(字符串2,开始下标,结束下标)
-
字符串格式化:
a、字符串拼接;
b、字符串格式化:格式字符串:包含一个或多个格式占位符的字符串 %(数据1,数据2,数据3,…)。
常用的字符串占位符: %s(字符串占位符);%d(整数占位符); %f(浮点数占位符,默认保留6位小数); %.Nf(保留n位小数)。
c、f-string:
-
基本用法:f’ {表达式}’
-
f-string参数:{提供数据的表达式:参数}:
(1)控制小数位数:{提供数据的表达式:参数.nf}(.nf代表保留的小数位数);
(2)大数据逗号分隔:{提供数据的表达式:,};
(3)控制小数位数和大数据逗号分隔合用:{提供数据的表达式:,.nf};
(4)小数显示成百分比:{提供数据的表达式:.n%} —— n代表保留几位小数
(5)控制填充长度:{提供数据的表达式:字符>长度}、{提供数据的表达式:字符<长度}、{提供数据的表达式:字符^长度}。
-
-
-
集合
-
集合(set)是一个无序的不重复元素序列。
-
集合的创建:可以使用大括号 { } 或者 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
-
集合的特点:a、无序性;b、互异性(唯一性)—— 元素不能重复;c、确定性 —— 给定一个集合和任意元素,该元素要么属于集合,要么不属于集合。
注意:1、创建集合可以使用 {} 字面量语法,{}中需要至少一个元素,因为没有元素的{},并不是空集合,而是空字典,创建空集合可以使用set{}。
2、集合中的元素通常不可变,集合本身是可变的,所以集合不能作为集合的元素。
-
集合的运算:
a、成员运算;
b、并、交、差运算
- 交集:(1)使用 & 运算符;(2)使用intersection方法。
- 并集:(1)使用 | 运算符;(2)使用union 方法。
- 差集:(1)使用 - 运算符;(2)使用difference方法。
- 对称差:(1)使用 ^ 运算符;(2)使用 symmetric_difference 方法;(3)对称差相当于两个集合的并集减去交集。
c、比较运算:== 、!=
-
子集和超集:
超集:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集,反过来也可以称为B是A的超集。
a、< 运算符表示真子集,<= 运算符表示子集;
b、通过issubset方法也能进行自己判断;
c、反过来也可以用issuperset 或 > 运算符进行超集判断;
-
集合的方法:
a、定义空集合的方法:set();
b、添加元素:(1)集合.add();(2)集合.update() —— 将其他集合合并到当前集合。
c、删除元素:
(1)集合.discard() —— 若元素不存在,不响应;
(2)集合.remove() —— 若元素不存在,报错;
(3)集合.pop() —— 从集合中随机删除一个元素并返回该元素。
-
不可变集合:frozenset()
注意:set() 和 frozenset的区别就如同列表跟元组。frozenset集合不能进行增、删,但可以求并交差运算。
-