-
写一个函数,实现maketrans的功能,将两个字符串转换成一个字典,第一个字符串中的字符是键,第二个字符串中的字符是值
第一个字符串: ‘abcmn’ 第二个字符串:‘一二三四五’
结果:{‘a’: ‘一’, ‘b’: ‘二’, ‘c’: ‘三’, ‘m’: ‘四’, ‘n’: ‘五’}
def to_dict(str1, str2): dict1 = {} for x in range(len(str1)): dict1[str1[x]] = str2[x] return dict1 str1 = 'abcmn' str2 = '一二三四五' result = to_dict(str1, str2) print(result) -
写一个属于自己的join函数,可以将任意序列中的元素以指定的字符串连接成一个新的字符串
序列: [10, 20, 30, ‘abc’] 字符串: ‘+’ 结果:‘10+20+30+abc’
序列: ‘abc’ 字符串: ‘–’ 结果:‘a–b--c’
注意:序列中的元素可以不是字符串哟
def my_join(list1, str1): # list改seq str2 = '' count = len(list1) for x in list1: str2 += str(x) count -= 1 if count > 0: str2 += str1 return str2 list1 = [10, 20, 30, 'abc'] str1 = '+' result = my_join(list1, str1) print(result) list1 = 'abc' str1 = '--' result = my_join(list1, str1) print(result) -
写一个输入自己的upper函数,判断指定字符串是否是纯大写字母字符串🔸
‘AMNDS’ -> True
‘amsKS’ -> False
‘123asd’ -> False
def is_all_upper(str1): for x in str1: if not 'A' <= x <= 'Z': print(False) break else: print(True) # 方法2 def is_all_upper(str1): for x in str1: if not 'A' <= x <= 'Z': return False return Ture str1 = input('请输入:') is_all_upper(str1) -
写一个clear函数,清空指定列表。
注意:功能是将原列表清空,不产生新的列表
def total_clear(list1): for x in list1[:]: # 这里要复制,不然删除元素后,其他元素位置改变,下次x取值会跳过删除的元素后面一位元素🟠 list1.remove(x) return list1 # 这行删掉,没有产生新的数据 list2 = ['d', 3, 'af', 8] total_clear(list2) print(list2) # [3, 8] # 方法2 def total_clear(list1): for x in range(len(list1)): del list1[0] # 每删一个元素个数减1,这里只能用下标0,一直删第一个 return list1 list2 = ['d', 3, 'af', 8] print(total_clear(list2)) -
写一个reverse函数,将列表中的元素逆序
两种方法:1.产生一个新的列表 2.不产生新的列表,直接修改原列表元素的顺序
def get_reverse(list1): for x in range(len(list1) // 2): list1[x], list1[len(list1) - 1 - x] = list1[len(list1) - 1 - x], list1[x] return list1 # 没有新数据,不用返回 list2 = ['d', 3, 'af', 8] get_reverse(list2) print(list2) # 其他方法 # 方法一: def get_reverse(list1): return list1[::-1] list2 = ['d', 3, 'af', 8] result = get_reverse(list2) print(result) # 方法二: def get_reverse1(list1): for index in range(len(list1)): list1.insert(index, list1.pop()) list2 = ['d', 3, 'af', 8] get_reverse1(list2) print(list2) -
写一个replace函数,将字符串中指定的子串替换成新的子串🔸
原字符串: ‘abc123abc哈哈哈uui123’ 旧子串: ‘123’ 新子串: ‘AB’
结果: ‘abcABabc哈哈哈uuiAB’
# 第二个替换不掉 def get_replace(str1, str2, str3): new_str = '' for index in range(len(str1)): if not str1.find(str2) == index: if index in range(str1.find(str2), str1.find(str2) + len(str2)): continue new_str += str1[index] else: new_str += str3 return new_str str1 = 'abc123abc哈哈哈uui123' str2 = '123' str3 = 'AB' result = get_replace(str1, str2, str3) print(result) # 切片获取 def replace_str(str1, str2, str3): length = len(str1) length1 = len(str2) for x in range(length): if str1[x:length1 + x] == str2: str1 = str1[:x] + str3 + str1[length1 + x:] return str1 print(replace_str('abc123abc哈哈哈uui123', '123', 'AB')) -
写一个函数,可以获取任意整数的十位数
123 -> 2
82339 -> 3
9 -> 0
-234 -> 3
def get_ten(num): if int(num) > 0: print(int(num) // 10 % 10) else: print(int(num) * -1 // 10 % 10) num = input('请输入任意整数:') get_ten(num) # 正确 def get_tens_digit(num): if num < 0: num *= -1 return num // 10 % 10 print(get_tens_digit(89)) print(get_tens_digit(-2389)) -
写一个函数实现数学集合运算符 & 的功能,求两个集合的公共部分:
集合1: {1, 2, 3} 集合2: {6, 7, 3, 9, 1}
结果:{1, 3}
def get_intersection(set1, set2): new_set = set() for x in set1: if x in set2: new_set.add(x) return new_set set1, set2 = {1, 2, 3}, {6, 7, 3, 9, 1} print(get_intersection(set1, set2)) -
写一个函数实现属于自己的字典update方法的功能,将一个字典中的键值对全部添加到另外一个字典中
字典1: {‘a’: 10, ‘b’: 20} 字典2: {‘name’: ‘张三’, ‘age’: 18} -> 结果让字典1变成: {‘a’: 10, ‘b’: 20, name’: ‘张三’, ‘age’: 18}
字典1: {‘a’: 10, ‘b’: 20} 字典2:{‘a’: 100, ‘c’: 200} -> 结果让字典1变成: {‘a’: 10, ‘b’: 20, ‘c’: 200}
def get_update(d1, d2): for key, value in d2.items(): if key not in d1: d1[key] = value return d1 # 用setdefault d1, d2 = {'a': 10, 'b': 20}, {'a': 100, 'c': 200} get_update(d1, d2) print(d1)
day10-函数基础作业
最新推荐文章于 2025-12-22 13:59:14 发布
本文介绍了如何使用Python编写函数来实现一些常见的字符串和列表操作,包括创建自定义maketrans函数生成字符映射字典,实现join功能连接序列元素,检查字符串是否全为大写,清空列表,逆序列表,替换子串,获取整数的十位数,计算集合交集,以及自定义字典的update方法。这些函数覆盖了基础的字符串处理和数据结构操作。
1180

被折叠的 条评论
为什么被折叠?



