filter() 函数检测回数(回数是从左往右和从右往左读一样的数,如21012):
def is_palindrome(n):
nums = str(n)
nums_r = "".join(reversed(list(nums)))
return nums == nums_r
if __name__ == "__main__":
output = filter(is_palindrome, range(1, 1000))
print('1~1000:', list(output))
map()函数批量转大小写
def normalize(name):
return name.title()
if __name__ == "__main__":
L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
print(L2)
利用 map() 和 reduce() 函数实现字符串转浮点数
def str2float(s):
z, x = s.split('.')
a = reduce(lambda x,y:x*10+y, map(int, list(z)))
b = reduce(lambda x,y:x*0.1+y, reversed(list(map(int, list(x)))))
return a+0.1*b
if __name__ == "__main__":
print('str2float(\'123.456\') =', str2float('123.456'))
sorted()函数 排序
def by_name(t):
return t[0]
def by_score(t):
return t[1]
def by_key(t):
return t[0]
def by_value(t):
return t[1]
if __name__ == "__main__":
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
L1 = sorted(L, key=by_name)
L2 = sorted(L, key=by_score)
D = ['Bob': 75, 'Adam': 92, 'Bart': 66, 'Lisa': 88]
D1 = sorted(D.items(), key=by_key)
# D1 = sorted(D.items(), key=lambda x:x[0])
# D1 = sorted(D.items())
D2 = sorted(D.items(), key=by_value)
# D2 = sorted(D.items(), key=lambda x:x[1])