文章目录
- 1、统计元音的个数,在字符串中找aeiou(正则)
- 2、首字母大小写:切片的方法
- 3、展开列表
- 4、求列表的差
- 5、通过函数取差
- 6、链式函数调用:在一行代码内调用多个函数
- 7、检查重复项:检查两个列表是否有重复项
1、统计元音的个数,在字符串中找aeiou(正则)
import re
def count_vowels(str):
return len(re.findall(r'[aeiou]', str, re.IGNORECASE))
v1 = count_vowels('basketball')
v2 = count_vowels('music')
print(v1, v2, sep='\n')
2、首字母大小写:切片的方法
大写:用字符串的title()方法
def decapitalize(string):
return string[:1].lower() + string[1:]
v1 = decapitalize('Wonderful')
v2 = 'hello'.title()
print(v1, v2, sep='\n')
3、展开列表
- 用递归的方式将列表的嵌套展开为一个个单列表
- 如果列表中有其他类型,如元组的话,会当成一个单元素来处理
def spread(arg):
ret = []
for i in arg:
if isinstance(i, list):
ret.extend(i)
else:
ret.append(i)
return ret
def deep_flatten(lst):
result = []
result.extend(
spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst)))
)
return result
v1 = deep_flatten([1, [2], [[3], 4], 5,[[13,14,520],(9,4,2,0)]])
print(v1)
4、求列表的差
- 该方法将返回第一个列表的元素,其不在第二个列表内的元素,简单说就是a列表独有的;
如果同时要返回第二个列表独有的元素,还需要加一句 set_b.difference(set_a)。
def differenceA(a, b):
set_a = set(a)
set_b = set(b)
comparisonA = set_a.difference(set_b)
return list(comparisonA)
def differenceB(a, b):
set_a = set(a)
set_b = set(b)
comparisonB = set_b.difference(set_a)
return list(comparisonB)
v1 = differenceA([1,2,3], [1,2,4])
v2 = differenceB([1,3,1,4],[5,2,0])
print(v1, v2, sep='\n')
5、通过函数取差
- 一个给定的函数,两组数据,返回这个函数两组数据传入后运行结果有差别的列表元素
以下的给定函数是floor与lambda v : v[‘x’]匿名取键函数
def difference_by(a, b, fn):
b = set(map(fn, b))
return [item for item in a if fn(item) not in b]
from math import floor
v1 = difference_by([2.1, 2.3], [3.4],floor)
v2 = difference_by([{'x': 2}, {'x': 1}], [{'x': 1}], lambda v : v['x'])
print(v1, v2, sep='\n')
6、链式函数调用:在一行代码内调用多个函数
def add(a, b):
return a + b
def subtract(a, b):
return a - b
a, b = 4, 5
v1 = (subtract if a > b else add)(a, b)
print(v1)
7、检查重复项:检查两个列表是否有重复项
def has_duplicates(lst):
return len(lst) != len(set(lst))
x = [1,2,3,4,5,5]
y = [1,2,3,4,5]
v1 = has_duplicates(x)
v2 = has_duplicates(y)
print(v1, v2, sep='\n')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)