文章目录
字典按键拆分及键值转换
找到在 Hamlet.txt 中出现最多的10个词 (python)
>>> import re,
>>> words = re.findall(r'\w+', open('hamlet.txt').read().lower())
>>> Counter(words).most_common(10)
[('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),
('you', 554), ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]
参考:
https://docs.python.org/2/library/collections.html
打印九九乘法表 (awk)
$ awk 'BEGIN{for(n=0;n++<9;){for(i=0;i++<n;)printf i"x"n"="i*n" ";print ""}}'
参考:
Linux Awk使用案例总结
画个心形 (python)
print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))
参考:
Python一行代码画出心形
单层嵌套列表合并
sum(iterable, [])
对单层嵌套列表合并是有效的
>>> lt=[[1,2],[3,4]]
>>> sum(lt,[])
[1, 2, 3, 4]
使用 itertools.chain.from_iterable
模块,也可以达到同样的效果
>>> import itertools
>>> list(itertools.chain.from_iterable(lt))
[1, 2, 3, 4]
参考:
https://docs.python.org/zh-cn/3/library/itertools.html#itertools.chain.from_iterable
同时遍历多个列表 (python)
import itertools
lt1, lt2, lt3 = [1,2], [3,4], [5,6]
for x,y,z in itertools.product(lt1,lt2,lt3):
print(x, y, z)
>>>
1 3 5
1 3 6
1 4 5
1 4 6
2 3 5
2 3 6
2 4 5
2 4 6
生成器/列表表达式
对numbers中的所有偶数求和
>>> numbers=range(10)
>>> sum(num for num in numbers if num % 2 == 0)
20
一行代码实现列表的逐个元素打印
lt = ['a', 'b', 'c', 'd']
print(*[f'{i}\t{item}' for i, item in enumerate(lt)], sep='\n')
输出:
0 a
1 b
2 c
3 d