起立马扎罗

导航

Learning Python 10.17

lists really are arrays inside the standard Python interpreter, not linked structures.这句话我没完全理解

List中的方法同样在http://www.cnblogs.com/kilimanjaroup/archive/2012/10/10/2718712.html中已经全部列出

需要注意的是,相比L+[x]一类的操作,L.append(x)这种method call会更快,因为它是in-place操作,不产生新的变量。

sort也是原地修改,所以L=L.sort()会导致丢失L的引用。列表的排序操作有以下几种方法

1 L = ['abc', 'ABD', 'aBe']
2 L.sort(key=str.lower) # Normalize to lowercase
3 print(L)
4 #['abc', 'ABD', 'aBe']
5 L.sort(key=str.lower, reverse=True) # Change sort order
6 print(L)
7 #['aBe', 'ABD', 'abc']
8 print(sorted([x.lower() for x in L], reverse=True))
9 #['abe', 'abd', 'abc']

 

dict的声明有四种常见方式:

 1 {'name': 'mel', 'age': 45}
 2 #一开始即了解dict中所有项的内容
 3 D = {}
 4 D['name'] = 'mel'
 5 D['age'] = 45
 6 #一次增加一项
 7 dict(name='mel', age=45)
 8 #简便,但需要key为string
 9 dict([('name', 'mel'), ('age', 45)])
10 #在需要运行时通过序列建立dict时较为有效

 

另外可以通过fromkeys()方法获得dict

print(dict.fromkeys(['a', 'b'], 0))
#{'a': 0, 'b': 0}
print(dict.fromkeys('spam'))
#{'a': None, 'p': None, 's': None, 'm': None}

 

dict的keys()方法的返回结果具有set的常见操作

dict可以按照key排序:

1 Ks = list(D.keys())
2 Ks.sort()
3 for k in Ks: 
4     print(k, D[k])
5 #age 45
6 #name mel

刚发现我之前的文章中居然没有列出dict的方法,补在这里好了。

 1 dict([('name', 'mel'), ('age', 45)])
 2 print(D.copy())
 3 #{'age': 45, 'namee': 'noname', 'name': 'mel'}
 4 print(len(D.items()))
 5 #2
 6 print(D.popitem())
 7 #('age', 45)
 8 print(D.keys())
 9 #dict_keys(['name'])
10 print(D.values())
11 #dict_values(['mel'])
12 #上面三个其实是某种set类似的结构(属于view objects),有len(S)和iter(S)方法可以使用for x in S、的结构遍历
13 print(D.setdefault("name","noname"))
14 #mel
15 print(D.setdefault("name"))
16 #noname
17 print(D.setdefault("namee","noname"))
18 #noname
19 print(D.setdefault("namee"))
20 #mel
21 D.clear()
22 print(D)
23 #{}
24 D.update({"name":"melllll"})
25 print(D)
26 #{'name': 'melllll'}

 

至P276,接下来弄18号的。希望以后不要有其他因素影响我发笔记的进度,我一旦拉下太多肯定就会放弃了。

posted on 2012-10-18 16:09  起立马扎罗  阅读(154)  评论(0)    收藏  举报