day11-函数基础作业

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

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

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

    def maketrans(str1, str2):
        list1 = []
        for x, y in enumerate(str1):
            list1 += [f'{y}{str2[x]}']
        dict1 = dict(list1)
        return(dict1)
    str1 = 'abcmn'
    str2 = '一二三四五'
    print(maketrans(str1,str2))
    结果:{'a': '一', 'b': '二', 'c': '三', 'm': '四', 'n': '五'}
    
  2. 写一个属于自己的join函数,可以将任意序列中的元素以指定的字符串连接成一个新的字符串

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

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

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

    def join(list1,str2):
        str1 = ''
        for x in list1:
            str1 += str(x)
            if list1[-1] != x:
                str1 += str2
        return(str1)
    list1 = [10, 20, 30, 'abc']
    str2 = '+'
    print(join(list1,str2))
    结果:
    10+20+30+abc
    
  3. *写一个输入自己的upper函数,判断指定字符串是否是纯大写字母字符串(出现多次)

    ‘AMNDS’ -> True

    ‘amsKS’ -> False

    ‘123asd’ -> False

    def upper(str1):
        for x in str1:
            if not 'A' <= x <= 'Z':
                return False
                break
        else:
            return True
    str1 = 'AMNDS'
    print(upper(str1))
    结果:True
    
  4. 写一个clear函数,清空指定列表。(应该从后面开始遍历删除,就不用产生一个新的列表)

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

    def clear(list1):
        for x in list1[:]:
            list1.remove(x)
        return(list1)
    list1 = [12, 13, 19, 20]
    print(clear(list1))
    结果:[]
    
  5. 写一个reverse函数,将列表中的元素逆序

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

def reverse(list1):
    list2 = [x for x in list1[-1::-1]]
    return(list2)
list1 = [1, 2, 3, 4, 5, 6, 7]
print(reverse(list1))
结果:
[7, 6, 5, 4, 3, 2, 1]
上一篇:day11-函数基础作业


下一篇:每日算法-两数之和