1、python获取当前字符串编码格式 chardet
安装:pip install chardet
在python2中,经常会遇到编码的问题,在python中有一个包可以打印出当前字符串的编码格式,具体的如下所示
import chardet
print chardet.detect(html)
如图所示:
测出的编码是ascii,其中confidence字段为1.0,表示检测的概率是1.0(即100%)
2、python将列表的元素转换成字典的形式 zip
zip的使用:
网址http://www.runoob.com/python/python-func-zip.html
3、将两个列表中的元素进行一一相加
a=[1,2,3]
b=[4,5,6]
c=[a[i]+b[i] for i in range(len(a))]
如下图所示:
4、条件表达式
if x>0:
y = math.log(x)
else:
y = float('nan')
##等同于
y = math.log(x) if x>0 else float('nan')
5、列表推导式
[exp for item in collection if condition]
l1 = []
for i in range(1000):
if x%2 == 0:
l1.append(i)
##等同于
[i for i in range(1000) if i%2 == 0]
6、os.path.join()的使用
os.path.join()函数用于路径拼接文件路径
os.path.join()函数中可以传入多个路径
如下图所示:
7、counter进行计数
Counter对列表中的元素进行计数处理,并将计数出的结果进行输出显示出来
most_common对计数的结果进行捡大的输出,参数表示的是输出最大的几个
例子如下图所示:
8、map函数
map(function,sequence):将function应用到sequence上
可用于数据清洗
import math
print('示例1,获取两个列表对应位置上的最小值:')
l1 = [1, 3, 5, 20, 9]
l2 = [2, 4, 6, 8, 10]
mins = map(min, l1, l2) ##对应位置进行比较,1vs2 3vs4 5vs6 20vs8 9vs10
print(list(mins))
# # map()函数操作时,直到访问数据时才会执行
# for item in mins:
# print(item)
print('示例2,对列表中的元素进行平方根操作:')
squared = map(math.sqrt, l2)
print(squared)
print(list(squared))
输出结果如下所示:
示例1,获取两个列表对应位置上的最小值:
[1, 3, 5, 8, 9]
示例2,对列表中的元素进行平方根操作:
<map object at 0x0000021A12F6E908>
[1.4142135623730951, 2.0, 2.449489742783178, 2.8284271247461903, 3.1622776601683795]
9、匿名函数lambda
(1)简单的函数操作
(2)返回值func类型
(3)可结合map()完成数据清洗操作
my_func = lambda a, b, c: a * b
print(my_func)
print(my_func(1, 2, 3))
# 结合map
print('lambda结合map')
l1 = [1, 3, 5, 7, 9]
l2 = [2, 4, 6, 8, 10]
result = map(lambda x, y: x * 2 + y, l1, l2)
print(list(result))
输出的结果如下所示:
<function <lambda> at 0x0000021A12F518C8>
2
lambda结合map
[4, 10, 16, 22, 28]
10、自定义排序 sorted()
# 普通排序
a = [5, 1, 4, 3]
print(sorted(a))
print(a)
输出结果:
[1, 3, 4, 5]
[5, 1, 4, 3]
原来的a并没有发生变化
# 字符串排序,大小写敏感
strs = ['ccx', 'aaay', 'Dz', 'Bm']
print(sorted(strs))
先将大写的字母排在前面
输出结果:
['Dz', 'Bm', 'ccx', 'aaay']
# 按照字符串长度排序
strs = ['ccx', 'aaay', 'Dz', 'Bm']
print(sorted(strs, key=len))
输出结果:
['Dz', 'Bm', 'ccx', 'aaay']
# 忽略大小写
print(sorted(strs, key=str.lower))
输出结果:
['aaay', 'Bm', 'ccx', 'Dz']
# 自定义排序函数
# 按字符串最后的字符进行排序
def last_char(s):
return s[-1]
print(sorted(strs, key=last_char))
输出结果:
['Bm', 'ccx', 'aaay', 'Dz']
# 列表中为元组的排序
tuple_list = [('ETH', 194.78), ('BTC', 6292.56), ('EOS', 4.99)]
print(sorted(tuple_list))
输出结果:
[('BTC', 6292.56), ('EOS', 4.99), ('ETH', 194.78)]
print(sorted(tuple_list, key=lambda item: item[1]))
输出结果:
[('EOS', 4.99), ('ETH', 194.78), ('BTC', 6292.56)]
11、字典列表排序
字典不可以直接使用sorted()函数进行排序,需要使用itemgetter
from operator import itemgetter
print(sorted(coin_list, key=itemgetter('name')))
输出的结果如下所示:
按name进行排序
[{'name': 'BTC', 'price': 6292.56}, {'name': 'EOS', 'price': 4.99}, {'name': 'ETH', 'price': 194.78}]
from operator import itemgetter
print(sorted(coin_list, key=itemgetter('price')))
输出的结果如下所示:
按price进行排序
[{'name': 'EOS', 'price': 4.99}, {'name': 'ETH', 'price': 194.78}, {'name': 'BTC', 'price': 6292.56}]
12、splitext
作用:是将文件的名字与扩展名进行分开,放在列表中
例子: