-
编写一个程序,交换指定字典的key和value。
例如:dict1={'a':1, 'b':2, 'c':3} --> dict1={1:'a', 2:'b', 3:'c'}
dict1 = {'a': 1, 'b': 2, 'c': 3} new_dict = {dict1[key]: key for key in dict1} print(new_dict)
-
编写一个程序,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
例如: 传入'12a&bc12d-+' --> 'abcd'
str1 = '12a&bc12d-+' new_str = '' for i in str1: if 'a' <= i <= 'z' or 'A' <= i <= 'Z': new_str += i print(new_str)
-
写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
例如: 'abc' -> 'Abc' '12asd' --> '12asd'
# print('abc'.capitalize(), '12asd'.capitalize(), ''.capitalize()) str1 = '' if str1 and 'a' <= str1[0] <= 'z': new_str = chr(ord('a') - 32) + str1[1:] else: new_str = str1 print(new_str)
-
写程序实现endswith的功能,判断一个字符串是否以指定的字符串结束
例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True 字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
str1 = 'abc231ab' str2 = 'ab' print(str2 == (str1[-len(str2):] if str2 else ''), str1.endswith(str2))
-
写程序实现isdigit的功能,判断一个字符串是否是纯数字字符串
例如: '1234921' 结果: True '23函数' 结果: False 'a2390' 结果: False
str1 = '' if str1: for i in str1: if not ('0' <= i <= '9'): print(False) break else: print(True) else: print(False) # 方法2: print(not ([1 for i in str1 if not ('0' <= i <= '9')] or not str1), str1.isdigit())
-
写程序实现upper的功能,将一个字符串中所有的小写字母变成大写字母
例如: 'abH23好rp1' 结果: 'ABH23好RP1'
str1 = 'abH23好rp1' new_str = '' for i in str1: if 'a' <= i <= 'z': new_str += chr(ord(i) - 32) else: new_str += i print(new_str)
-
写程序获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
例如: 序列:[-7, -12, -1, -9] 结果: -1 序列:'abcdpzasdz' 结果: 'z' 序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98} 结果: 98
data = {'小明': 90, '张三': 76, '路飞': 30, '小花': 98} # 取字典中的值 if type(data) == dict: data = [data[key] for key in data] # 将其他序列转化为列表 data = list(data) max_data = data[0] for i in data[1:]: if i > max_data: max_data = i print(max_data)
-
写程序实现replace函数的功能,将指定字符串中指定的旧字符串转换成指定的新字符串
例如: 原字符串: 'how are you? and you?' 旧字符串: 'you' 新字符串:'me' 结果: 'how are me? and me?'
str1 = 'how are you? and you?' str2 = '' str3 = 'f' count = 0 # 替换次数 count_0 = 10 new_str = '' # str2为空串时多执行一次循环, 保证末尾有效添加 while count_0 and count < len(str1) - len(str2) + 1: if str1[count: count + len(str2)] == str2: # 用切片替代索引避免str2为空时索引超出报错 new_str += str3 if str2 else (str3 + str1[count: count + 1]) count += len(str2) if str2 else 1 count_0 -= 1 else: # 空串时不执行该代码段, 空串时多执行那一次不会在此处出现下标越界问题 new_str += str1[count] count += 1 new_str += str1[count:] print(new_str) print(str1.replace(str2, str3, 10)) # 法2: count = 0 # 替换次数 count_0 = 100 # str2为空时,新串末尾是否需要添加str3 flag = count_0 <= len(str1) and count >= 0 new_str = '' while count < len(str1): if count_0 and str1[count: count + len(str2)] == str2: # str2为空时特殊处理 new_str += str3 if str2 else (str3 + str1[count]) # str2为空时count自增1 count += len(str2) if str2 else 1 count_0 -= 1 else: new_str += str1[count] count += 1 # str2为空时,新串末尾是否需要添加str3 new_str += '' if str2 or flag else str3 print(new_str) print(str1.replace(str2, str3, 100))
-
写程序实现split的功能,将字符串中指定子串作为切割点对字符串进行切割
例如:原字符串: 'how are you? and you?' 切割点: 'you' 结果: ['how are ', '? and ', '?']
str1 = 'how are you? and you?' str2 = 'y' count_f = 0 count = 0 # 切割次数 count_0 = 1 list1 = [] # 空串不能作为切割标记点 if str2: while count < len(str1) - len(str2) + 1 and count_0: if str1[count: count + len(str2)] == str2: list1.append(str1[count_f: count]) count += len(str2) count_f = count count_0 -= 1 else: count += 1 list1.append(str1[count_f:]) print(list1, str1.split(str2, 1)) else: print('报错')
-
用思维导图总结四大容器:列表、字典、元组、集合
day9-字符串作业(1)
于 2022-04-23 22:33:48 首次发布