Python for Data Analysis (7)

enumerate

它可以逐個返回序列的(i,vlue)元組,可以用於映射其所在位置的字典

#語法
for i, value in enumerate(collection):
    #用value做一些事情
list1=['foo','too','foor']
for i,value in enumerate(list1):
    print i,value
0 foo
1 too
2 foor
mapping_dict=dict((i,v) for i, v in enumerate(list1))
mapping_dict
{0: 'foo', 1: 'too', 2: 'foor'}

sort and set

list2=['we are the family!']
set(list2)
{' ', '!', 'a', 'e', 'f', 'h', 'i', 'l', 'm', 'r', 't', 'w', 'y'}
#只有直接把字符串放入這個set()中才有這個效果,如果寫list2是一個list,不可以拆分
sorted(set('we are the family!'))
[' ', '!', 'a', 'e', 'f', 'h', 'i', 'l', 'm', 'r', 't', 'w', 'y']

zip

用於多個序列(列表、元組)中的元素“一一配對”,從而產生一個新的元組列表:

list3=['one','two','three']
list4=[True,False]
#說明最終得到的元組由最短的序列決定
zip(list1,list3,list4)
[('foo', 'one', True), ('too', 'two', False)]
#zip有一個常用的用法就是和enumerate一起使用:
for i,(a,b)in enumerate(zip(list1,list3)):
    print i,a,b
0 foo one
1 too two
2 foor three
list5=zip(list1,list3,list4)
#unzip,解壓
value1,value2,value3=zip(*list5)
print value1
#這裏的*號,相當於:
#zip(seq[0],seq[1],seq[2],...,seq[len(seq)-1])
('foo', 'too')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章