day11-函数基础作业

  1. 写一个函数,实现maketrans的功能,将两个字符串转换成一个字典,第一个字符串中的字符是键,第二个字符串中的字符是值

    第一个字符串: ‘abcmn’ 第二个字符串:‘一二三四五’

    结果:{‘a’: ‘一’, ‘b’: ‘二’, ‘c’: ‘三’, ‘m’: ‘四’, ‘n’: ‘五’}

    def maketrans(key_str: str, value_str: str) -> dict:
        """
        将两个字符串转换成一个字典,第一个字符串中的字符是键,第二个字符串中的字符是值
        :param key_str: 提供键的字符串
        :param value_str: 提供值的字符串
        :return: 字典
        """
        len1 = len(key_str)
        len2 = len(value_str)
        result = {}
        for i in range(min(len1, len2)):
            result[key_str[i]] = value_str[i]
        return result
    
    
    key_str = 'abcm'
    value_str = '一二三四五'
    print(maketrans(key_str, value_str))
    
  2. 写一个属于自己的join函数,可以将任意序列中的元素以指定的字符串连接成一个新的字符串

    序列: [10, 20, 30, ‘abc’] 字符串: ‘+’ 结果:‘10+20+30+abc’

    序列: ‘abc’ 字符串: ‘–’ 结果:‘a–b--c’

    注意:序列中的元素可以不是字符串哟

    def new_join(seq, str1: str) -> str:
        """
        将任意序列中的元素以指定的字符串连接成一个新的字符串
        :param seq: 任意序列
        :param str1: 指定的字符串
        :return: 新的字符串
        """
        new_str = ''
        for i in seq:
            new_str += str(i) + str1
        return new_str[:- len(str1)]
    
    
    seq = [10, 20, 30, 'abc']
    # seq = 'abc'
    print(new_join(seq, '--'))
    
  3. 写一个输入自己的upper函数,判断指定字符串是否是纯大写字母字符串

    ‘AMNDS’ -> True

    ‘amsKS’ -> False

    ‘123asd’ -> False

def new_upper(str1: str) -> bool:
    """
    判断指定字符串是否是纯大写字母字符串
    :param str1: 指定字符串
    :return: True or False
    """
    for i in str1:
        if not 'A' <= i <= 'Z':
            return False
    return True


print(new_upper('AMNDS'))
print(new_upper('amsKS'))
print(new_upper('123asd'))
  1. 写一个clear函数,清空指定列表。

    注意:功能是将原列表清空,不产生新的列表

def new_clear(list1: list):
    """
    清空指定列表
    :param list1: 指定列表
    :return: None
    """
    # 方法一
    # if list1:
    #     for i in list1[:]:
    #         list1.remove(i)
    # 方法二
    len1 = len(list1)
    for _ in range(len1):
        del list1[0]


list1 = [10, 20, 30, 40]
new_clear(list1)
print(list1)
  1. 写一个reverse函数,将列表中的元素逆序

    两种方法:1.产生一个新的列表 2.不产生新的列表,直接修改原列表元素的顺序

# 方法一:
def _reverse(list1: list) -> list:
    """
    将列表中的元素逆序
    :param list1: 原列表
    :return: 新的列表
    """
    # 方法一
    return list1[::-1]


list1 = [10, 20, 30, 40]
print(_reverse(list1))
# 方法二
def _reverse(list1: list):
    """
    将列表中的元素逆序
    :param list1: 原列表
    :return: None
    """
    len1 = len(list1)
    for index in range(len1//2):
        list1[index], list1[-index-1] = list1[-index-1], list1[index]


list1 = [10, 20, 30, 40, 50]
_reverse(list1)
print(list1)
上一篇:每日算法-两数之和


下一篇:list.append()