python小知识点重回顾
1.r’\string…’
r是raw的意思,保持字符串的原样,以免被转义字符影响。
2. 列表
检查列表中是否包含某个元素是非常缓慢的,因为python在列表中线性逐个扫描;在字典和集和中,python是同时检查所有元素。
两个列表的合并:
- 直接用 + 号连接
- list1.extend(list2),更好更快。
3.切片
:[start:end]: 包含start,不包含end
:[start: end:step]: 每隔一段取一个值:
:sep = [1,2,3,4,5]
: sep[::-1]倒叙输出
[5,4,3,2,1]
4.内建函数
enumerate():
便于追踪元素索引。
dic = {}
for i, value in enumerate(list):
# 返回i索引,和value值。便于追踪元素索引。
dic[i] = value
sorted():
排序
a = sorted([1,2,5,3])
print(a)
[1, 2, 3, 5]
zip():
zip函数的返回对象类型是一个zip类型,通常转换为list
将列表、元组或其他序列的元素配对,新建一个新的 元组组成的列表。
组合按最短的序列决定。
zip(*zipped)
利用 * 号操作符,可以将元组解压为列表。*zipped参数,可以list数组,也可以是zip()函数返回的对象(https://blog.csdn.net/qq_44034384/article/details/107302183 )。
a = ['Y','L']
b = ['Lu','fan']
c = ['1', '2', '3']
zip(a,b)
# >>> list(zip(a,b))
# [('Y', 'Lu'), ('L', 'fan')]
zip(a,b,c)
# >>> list(zip(a,b,c))
# [('Y', 'Lu', '1'), ('L', 'fan', '2')]
first_name, last_name = zip(a,b)
# >>> first_name, last_name = zip(*zip(a,b))
# >>> list(zip(*zip(a,b)))
# [('Y', 'L'), ('Lu', 'fan')]
# >>> print(first_name)
# ('Y', 'L')
# >>> print(last_name)
# ('Lu', 'fan')
reversed()
倒叙排列
嵌套列表推导式
for tup in some_tuples:
for x in tup:
flat.append[x]
# 转换成嵌套列表推导式:
flat = [x for tup in some_tuples for x in tup]
匿名函数 lambda:
def my_function(x):
return x * 2
# 定义成匿名函数
equiv_anon = lambda x: x * 2
生成器表达式
gen = (x ** 2 for x in range(100))
>>> list(gen)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225, 4356, 4489, 4624, 4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776, 5929, 6084, 6241, 6400, 6561, 6724, 6889, 7056, 7225, 7396, 7569, 7744, 7921, 8100, 8281, 8464, 8649, 8836, 9025, 9216, 9409, 9604, 9801]