交换两个变量的值
1. >>>a=1
2. >>>b=2
3. >>>t=a
4. >>>a=b
5. >>>b=t
6. >>>a
7. 2
8. >>>b
9. 1
更pythonic一点
1. >>>a, b = b, a
字符串连接
1. >>>a =['aa', 'bb', 'cc']
2. >>>s=a[0]
3. >>>for b in a[1:]:
4. s += ', ' + b
5. >>>s
6. aabbcc
更pythonic一点
1. >>>a =['aa', 'bb', 'cc']
2. >>>b=(', '.join(a))
3. >>>b
4. aabbcc
序列解包
1. >>>p ='abc', 'f', 18
2. name = p[0]
3. gender = p[1]
4. age = p[2]
更pythonic
name,gender, age = p
列表
反转一个列表
1. >>> a = [1,2,3]
2. >>> a[::-1]
3. [3,2,1]
1. >>> a = [1,2,3]
2. >>>a.reverse()
3. [3,2,1]
1. >>> a = [1,2,3]
2. >>>a.sort(reverse=True)
3. [3,2,1]
匿名函数lambda
1. >>>def a(x):
2. return x+1
3. >>>a(3)
4. 4
用lambda这样写就比较好看了:
# lambda 形参 返回值 #
1. >>>a=lambda x:x+1
2. >>>a(3)
3. 4
…for…in…if…
1. >>> a=[1,2,3]
2. >>> b=[i*2 for i in a if i >1]
3. >>>b
4. [4,6]
合理使用filter、map、reduce函数
filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回
1. filter( lambda x:x!='a', 'abcd' ) #'bcd'
map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回:
1. map( lambda x:x+1, range(3) ) #[1,2,3]
reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和
1. reduce( lambda x,y:x+y, range(3), 10 ) #13
迭代
需要获取index时使用enumerate
1. d=['a', 'b', 'c']
2. for index, value in enumerate(d):
3. print(index)
4. 0
5. 1
6. 2
对dict中的key,value迭代
1. d=['a': 1, 'b': 2, 'c': 3]
2. index, value in d.items():
3. print(index,':',value)
4. a : 1
5. b : 2
6. c : 3
用zip同时遍历两个迭代器
1. list_a = ['a', 'b', 'c', 'd']
2. list_b = [1, 2, 3]
# 虽然列表长度不一样,但只要有一个列表耗尽,则迭代就会停止
3. for letter, number in zip(list_a, list_b):
4. print(letter, number)
5. a 1
6. b 2
7. c 3
使用with语句
通过with语句,代码完成了文件打开操作,并在调用结束,或者读取发生异常时自动关闭文件,即完成了文件读写之后的处理工作。
1. with open('test.txt', 'r') as file:
2. for line in file.readlines():
3. print(line)