-
编写一个函数,交换指定字典的key和value。
例如:dict1={'a':1, 'b':2, 'c':3} --> dict1={1:'a', 2:'b', 3:'c'}
def exchange_key_value(dict1): """ 交换指定字典的key和value :param dict1:指定需要交换的字典 :return:None """ dict2 = dict([(dict1[key], key) for key in dict1]) print(dict2) exchange_key_value({'a': 1, 'b': 2, 'c': 3}) # {1: 'a', 2: 'b', 3: 'c'}
-
编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
例如: 传入'12a&bc12d-+' --> 'abcd'
def get_letter(string): """ 提取指定字符串中所有的字母 :param string: :return: """ str1 = ''.join([x for x in string if 'a' <= x <= 'z' or 'A' <= x <= 'Z']) print(str1) get_letter('abc123def456') # abcdef
-
写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
例如: 'abc' -> 'Abc' '12asd' --> '12asd'
def capitalize(string): """ 将指定字符串的首字母变成大写字母 :param string: 需要操作的字符串 :return: None """ str2 = ''.join([chr(ord(string[0]) - 32) + string[1:] if 'a' <= string[0] <= 'z' else string]) print(str2) capitalize('abc') # Abc capitalize('12asd') # 12asd
-
写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束
例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True 字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
def endswith(string1, string2): """ 判断字符串1是否已指定的字符串2结束 :param string1: 指定字符串1 :param string2: 指定字符串2 :return: None """ length = len(string2) if string1[-length::1] == string2: print(True) else: print(False) endswith('abc231ab', 'ab') # True endswith('abc231ab', 'ab1') # False
-
写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
例如: '1234921' 结果: True '23函数' 结果: False 'a2390' 结果: False
def isdigit(string): """ 判断一个字符串是否是纯数字字符串 :param string: 需要判断的字符串 :return: None """ for x in string: if not '0' <= x <= '9': print(False) break else: print(True) isdigit('1234921') # True isdigit('23函数') # False isdigit('a2390') # False
-
写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母
例如: 'abH23好rp1' 结果: 'ABH23好RP1'
def upper(string): """ 将一个字符串中所有的小写字母变成大写字母 :param string: 需要操作的字符串 :return: None """ str1 = ''.join([chr(ord(string[x]) - 32) if 'a' <= string[x] <= 'z' else string[x] for x in range(len(string))]) print(str1) upper('abH23好rp1') # ABH23好RP1
-
写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充
例如: 原字符:'abc' 宽度: 7 字符:'^' 结果: '^^^^abc' 原字符:'你好吗' 宽度: 5 字符:'0' 结果: '00你好吗'
def rjust(string, int1, char): """ 输入字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充 :param string: 需要操作的字符串 :param int: 指定的字符串长度 :param char: 剩下部分指定的填充字符 :return: None """ length = len(string) if int1 < length: str1 = string[-int1:] else: str1 = char * (int1-length) + string print(str1) rjust('abc', 7, '^') # ^^^^abc rjust('你好吗', 5, '0') # 00你好吗 rjust('abc', 1, '0') # c
-
写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1
例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0] 元素: 1 结果: 0,4,6 列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '赵云' 结果: 0,4 列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '关羽' 结果: -1
def index_self(list1, item): """ 统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1 :param list1: 指定的列表 :param item: 需要统计的元素 :return: None """ count = 0 for x in range(len(list1)): if list1[x] == item: count += 1 print(x, end=',') if count == 0: print(-1) print() index_self([1, 2, 45, 'abc', 1, '你好', 1, 0], 1) # 0,4,6, index_self(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'], '赵云') # 0,4, index_self(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'], '关羽') # -1
-
写一个自己的len函数,统计指定序列中元素的个数
例如: 序列:[1, 3, 5, 6] 结果: 4 序列:(1, 34, 'a', 45, 'bbb') 结果: 5 序列:'hello w' 结果: 7
def count_item(sequence): """ 统计指定序列中元素的个数 :param list1: 指定的列表 :return: None """ count_temp = 0 for x in sequence: count_temp += 1 print(count_temp) count_item([1, 3, 5, 6]) # 4 count_item((1, 34, 'a', 45, 'bbb')) # 5 count_item('hello w') # 7
-
写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
例如: 序列:[-7, -12, -1, -9] 结果: -1 序列:'abcdpzasdz' 结果: 'z' 序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98} 结果: 98
def max_self(sequence): """ 获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值 :param sequence:需要操作的指定序列 :return:None """ if type(sequence) == dict: sequence1 = list(sequence.values()) else: sequence1 = sequence max_item = sequence1[0] for x in sequence1: if x > max_item: max_item = x print(max_item) max_self([-7, -12, -1, -9]) # -1 max_self({'小明': 90, '张三': 76, '路飞': 30, '小花': 98}) # 98
-
写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在
例如: 序列: (12, 90, 'abc') 元素: '90' 结果: False 序列: [12, 90, 'abc'] 元素: 90 结果: True
def in_self(sequence, item): """ 判断指定序列中,指定的元素是否存在 :param sequence: 指定序列 :param item: 指定元素 :return: None """ for x in sequence: if x == item: print(True) break else: print(False) in_self((12, 90, 'abc'), '90') # False in_self([12, 90, 'abc'], 90) # True
-
写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串
例如: 原字符串: 'how are you? and you?' 旧字符串: 'you' 新字符串:'me' 结果: 'how are me? and me?'
def replace_self(string, old_str, new_str):
"""
将指定字符串中指定的旧字符串转换成指定的新字符串
:param string: 原字符串
:param old_str: 需要替换的旧字符串
:param new_str: 替换的新字符串
:return: None
"""
length1 = len(string)
length2 = len(old_str)
length3 = len(new_str)
gap = length2 - length3
count = 0
str1 = string + ''
for x in range(length1):
x += (length2-1)*count
if x >= length1:
break
if string[x:x + length2] == old_str:
str1 = str1[:x] + new_str
count += 1
else:
str1 += string[x]
print(str1)
replace_self('how are you? and you?', 'you', 'me') # how are me? and me?