近期使用的python高效小技巧汇总

时间:2022-04-08 15:47:24

最近常用的Python数据处理的小技巧

1.元组的列表去重

元组或者列表如果做hash会报错。所以可以使用先放到一个汇总列表里,然后用set函数的方法。

test_tuple1_list=[('a','b')]

test_tuple2_list=[('a','c')]

test_tuple3_list=[('a','b')]

 

test_tuple1_list.extend(test_tuple2_list)

test_tuple1_list.extend(test_tuple3_list)

 

test_set=set(test_tuple1_list)

 

print test_set

 

2.两个字典的合并

test_dict1={'k1':'v1','k2':'v2'}

 

test_dict2={'k1':'v1_2','k3':'v3'}

 

print dict(test_dict1,**test_dict2)

 

打印出来结果是

{'k1':'v1_2', 'k2':'v2','k3':'v3'}

 

字典的加减:

dict_a={'k1':'v1','k2':'v2','k3':'v3'}

dict_b={'k1':'v1'}

print set(dict_a) - set(dict_b)

 

3.集合的操作

set1=set('abc')

set2=set('bcd')

 

集合的交集,set1&set2;

集合的并集,set1 | set2

 

检查集合的包含关系

 

list1=['a','b','c']

set1=set(list1)

list2=['a','b','c','d']

set2=set(list2)

print set1<=set2

 

 

4. 频次的统计

collections里面的Counter

 

如果要对字典逆序的话,比如对于AduaListDict这个字典逆序。

    SortedAduaDict = [ (AduaListDict[k], k) fork in AduaListDict.keys()]

    SortedAduaDict.sort(reverse=True)

 

5.快速初始化一个字典

下面这段代码,把三个列表合并(去重)而成的一个列表,初始化为一个字典

tl1=[1,3,5]

tl2=[3,4,5]

tl3=[5,9]

 

test_set=set(tl1) | set(tl2) | set(tl3)

 

printlist(test_set)

 

test_dict=dict.fromkeys(list(test_set),'yes')

 

6. 取得一个字符串里的所有单个字符(去重)

test_set1=set('baoma2xi(jinkou)')

 

test_set2=set('baoma3xi')

 

printtest_set1

 

7. 检查一个字符串是不是全是数字:

test_str='237869'

printtest_str.isdigit()

 

8. 对于一串数字,求最大最小求和,可以用min,max,sum求得。如果再复杂的,就要用pandas了。

 

9.自动得到中文的拼音

fromxpinyin import Pinyin

 

p=Pinyin()

 

x=p.get_pinyin(u"北京")

 

print x

 

10. 一个超有用的函数eval(str())。把符合列表、字典,各种格式的字符串转成数据结构。

site_car_list=['abc','set(["d","e","f"])']

yiche_car_list=list(eval(str(site_car_list[1])))

printyiche_car_list

 

11.在元组、列表或者字典里的中文,如果直接打印的话,很可能打出来是乱码

这时候可以用.join函数,转为字符串再打印。

print  "".join(test_str.split())