Python编程一些有意思的用法和技巧
2018-01-05 16:50
441 查看
1.原位替换
九九乘法表 (列表解析)
print('\n'.join([''.join(['*'if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else' 'for x in range(-80,20)])for y in range(-20,20)]))
a = 5 b = 6 c = 7 a,b = b,a print("a is",a) print("b is",b) a = 5 b = 6 c = 7 a, (b,c) = c, (a,b) print("a is",a) print("b is",b) print("c is",c) a = 5 b = 6 c = 7 a,b,c = c,a,b print("a is",a) print("b is",b) print("c is",c)2.链似比较
x = 5 print("1 < x < 10 is", 1 < x < 10) print("10 > x <= 9", 10 > x <= 9)3.列表索引,反序
a = [1,2,3,4,5,6,7,8,9] a[::2] a[::3] a[::-1]4.列表解析、字典解析、元组解析
# 获得系列坐标点 a = ((i,j) for i in range(3) for j in range(2)) for i in a: print(i) str1 = "I love sheng xin bao dian" print([i for i in str1.split() if i.endswith('n')]) a = {i:i*2 for i in range(5)} a [(x, y) for x in range(4) if x % 2 == 1 for y in range(4)]5.集合操作
a = set(["sheng", "xin", "bao","dian","best","tutotials"]) b = set(["hong", "ji", "yin","zu","best","tutotials"]) a | b # union a & b # intersection a ^ b # Symmetric Difference6.Negative round
print("round:"+u"整数:",str(round(1234.5678, -2))) print("round:"+u"小数:",str(round(1234.5678, 2)))7.zip转换两个列表为字典
keyL = [1,2,3,4] valueL = ['a','b','v','x'] for i ,j in zip(keyL, valueL): print(i,j) import pprint pprint.pprint(dict(zip(keyL, valueL))) dict([(i,j) for i ,j in zip(keyL, valueL)])8.enumerate索引列表 (不再使用len)
# Preferred way a = ['s','x','b','d'] for index, item in enumerate(a): print(index,item) # Old way a = ['s','x','b','d'] for i in range(len(a)): print(i,a[i])9.矩阵转置
a = [(1,2), (3,4), (5,6)] b = zip(*a) for i in b: print(i)10.sum的另一用法,二维数组秒变1维
aList = [[1, 2, 3], [4, 5], [6], [7, 8, 9]] sum(aList, [])11.map, filter
a = [3,4,5] [i for i in a if i<4] list(filter(lambda x: x<4, a)) [i+2 for i in a] map(lambda x: x+2, a) list(map(lambda x: x+2, a))2的1000次方的各位数之和
sum(map(int, str(2**1000)))12.python打印图形
九九乘法表 (列表解析)
print('\n'.join([' '.join(['%s*%s=%-2s' % (y,x,x*y) for y in range(1,x+1)]) for x in range(1,10)]))打印心型
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)]))打印曼德勃罗集合
print('\n'.join([''.join(['*'if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else' 'for x in range(-80,20)])for y in range(-20,20)]))
相关文章推荐
- Python编程中time模块的一些关键用法解析
- 一些有意思的面试题(持续更新) .C语言编程技巧札记
- C++ 一些CString变量的用法技巧总结
- JQuery一些常见用法与技巧介绍
- 表单的一些基本用法与技巧
- Java中Calendar和Date的一些使用用法技巧
- 一些Python的惯用法和小技巧:Pythonic
- 表单的一些基本用法与技巧
- Angular的一些用法或者结构技巧
- SAP的一些用法技巧及例子
- CreateThread的用法及在Qt等GUI开发中使用CreateThread的一些技巧
- Python编程中实现迭代器的一些技巧小结
- JQuery一些常见用法与技巧
- 关于Gridview的一些用法和技巧,不断补充中……
- Python编程中time模块的一些关键用法解析
- 或许你不知道的10条SQL技巧 原创 2017-07-16 58沈剑 架构师之路 这几天在写索引,想到一些有意思的TIPS,希望大家有收获。 一、一些常见的SQL实践 (1)负向条件查询不能使用索
- 通知的基本用法和一些进阶技巧
- 【编程技巧】 iOS 5的StoryBoard(故事板)的一些用法
- Python编程中实现迭代器的一些技巧小结
- WebStrom中的一些技巧和用法