Python的魅力
Python是一个给人持续惊喜的编程语言,在读python代码的时候,读着读着就会发现,python还可以这样使用。本文用来收集python 的奇葩语法的。
1. lambda语法
lambda 是一行没有名字的函数,也称为匿名函数,在C++中也有这种语法。其具体用法为:1
lambda params:f(params)
例如1
2z = lambda x,y:(x+y)
z(1,2) ==>3
还有一些其他特殊用法如1
2a = [(1,2),(5,6),(3,4),(6,2)]
a.sort(key=lambda x:x[1])
列表并行排序1
2
3data = zip(list1, list2)
data = sorted(data)
list1, list2 = map(lambda t: list(t), zip(*data))
2. b if c else d
相当于C++中 c?b:d,可用于任何判断一个表达式,而取两个值得情况
如:1
2$ a = 46
$ print(a,"is","even" if a%2==0 else "odd")
3. a = [b for _ in range(c)]
1 | for … in … 产生的是一个generator,迭代生成一个列表,有趣的是可以与if else连用 |
4. generator
5. python定义的系统标识符
- 5.1 Class1.__name__ # 类型名称 ‘Class1’
- 5.2 Class1.__module__ # 类型所在模块 ‘main‘
- 5.3 Class1.__bases__ # 类型所继承的基类 (
,) - 5.4 Class1.__dict__ # 类型字典,存储所有类型成员信息。
- 5.5 Class1().__class__ # 类型
- 5.6 Class1().__module__ # 实例类型所在模块 ‘main‘
- 5.7 Class1().__dict__ # 对象字典,存储所有实例成员信息。 {‘i’: 1234}
- 5.8 __repr__ #名称的官方输出
- 5.9 __version__ 版本
6. __init__.py
放在文件夹内可以把文件夹名字作为类导入
7. map
map会根据给定的函数对指定的序列做映射
map(function, iterable)1
2
3
4
5
6
7
8
9
10
11>>>def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]