Discuss / Python / 脑海里的第一个想法

脑海里的第一个想法

Topic source

护苗2018

#1 Created at ... [Delete] [Delete and Lock User]

第一题:

BIG_SMALL = {'A':'a', 'B':'b', 'C':'c', 'D':'d', 'E':'e', 'F':'f', 'G':'g', 'H':'h', 'I':'i', 'J':'j', 'K':'k', 'L':'l', 'M':'m', 'N':'n', 'O':'o', 'P':'p', 'Q':'q', 'R':'r', 'S':'s', 'T':'t', 'U':'u', 'V':'v', 'W':'w', 'X':'x', 'Y':'y', 'Z':'z'}
SMALL_BIG = {'a':'A', 'b':'B', 'c':'C', 'd':'D', 'e':'E', 'f':'F', 'g':'G', 'h':'H', 'i':'I', 'j':'J', 'k':'K', 'l':'L', 'm':'M', 'n':'N', 'o':'O', 'p':'P', 'q':'Q', 'r':'R', 's':'S', 't':'T', 'u':'U', 'v':'V', 'w':'W', 'x':'X', 'y':'Y', 'z':'Z'}
def normalize(name):
    value = ''
    for i, x in enumerate(name):
        print(i,x)
        if x in BIG_SMALL:
            x = BIG_SMALL[x]
        if i == 0:
            x = SMALL_BIG[x]
        value = value + x
    return value

第二题:

def prod(L):
    def f(a, b):
        return a * b
    return reduce(f,L)

第三题:

    DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, \
          '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
    def fn(x, y):
        return x * 10 + y
    def char2num(s):
        return DIGITS[s]

    str1, str2 = s.split('.')

    def a_str2float(str):
        return reduce(lambda x, y: x * 10 + y, map(char2num, str))

    return a_str2float(str1) + a_str2float(str2) * .1 ** len(str2) 

  • 1

Reply