1、关于unicode:由于python2.x发布在unicode出现以前,因此python2.x版本不能很好的支持中文,需要在脚本文件的第二行注明 #coding: utf-8
2、关于python运算符:基本与其他语言的运算符保持一致,如基本的 + - * / ,
需要注意的是:
** 表示乘方,
// 表示整数除法,而
/ 则表示浮点数除法,如:8.0 / 2 = 4.0, 8.0 // 2 = 4
^ 符号表示异或,多用于对于文件或者目录权限的判断,例如假设某文件的权限为655,则通过与000异或便能得出该文件所具有的权限。
3、python基本的数据结构
(1) list(序列):序列是可变、可迭代、可哈希的
In [1]: list.
list.append list.count list.extend list.index list.insert list.pop list.remove list.reverse list.sort
In [1]: li = [1,2,3,4,5]
In [2]: li
Out[2]: [1, 2, 3, 4, 5]
!!! In [3]: li.append(6)
In [4]: li
Out[4]: [1, 2, 3, 4, 5, 6]
In [5]: li.append(6)
In [6]: li
Out[6]: [1, 2, 3, 4, 5, 6, 6]
li.count(6) = 2
In [8]: li1 = [7,8,9]
!!! In [9]: li.extend(li1)
In [10]: li
Out[10]: [1, 2, 3, 4, 5, 6, 6, 7, 8, 9]
In [11]: li.index(6)
Out[11]: 5
In [12]: li.index(1)
Out[12]: 0
In [13]: li.insert(len(li),100)
In [14]: li
Out[14]: [1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 100
!!! In [15]: li.pop()
Out[15]: 100
In [16]: li
Out[16]: [1, 2, 3, 4, 5, 6, 6, 7, 8, 9]
!!! In [17]: li.pop(3)
Out[17]: 4
In [18]: li
Out[18]: [1, 2, 3, 5, 6, 6, 7, 8, 9]
!!! In [19]: li.remove(2)
In [20]: li
Out[20]: [1, 3, 5, 6, 6, 7, 8, 9]
!!! In [21]: li.reverse()
In [22]: li
Out[22]: [9, 8, 7, 6, 6, 5, 3, 1]
!!! In [23]: li.sort()
In [24]: li
Out[24]: [1, 3, 5, 6, 6, 7, 8, 9]
[注]:对于列表的复制操作需要用到切片,如li1 = li[:]
(2) tuple(元组):元组是不可变、不可迭代、可哈希的
tup1 = (‘a‘,‘b‘,‘c‘)
!!! 当元组中只有一个元素时需要加逗号以示区分 tup1 = (‘a‘,)
tup1[0] ==> ‘a‘
tup1[1:2] ==> (‘b‘,)
cmp(tuple1, tuple2):比较两个元组元素。
len(tuple):计算元组元素个数。
max(tuple):返回元组中元素最大值。
min(tuple):返回元组中元素最小值。
tuple(seq):将列表转换为元组。
(3) set(集合):集合的元素是不重复的,元素可以是元素但不能是列表
In [31]: s = set()
In [32]: s.
s.add s.difference s.intersection s.issubset s.remove s.union s.clears s.difference_update s.intersection_update s.issuperset s.symmetric_difference s.update
s.copy s.discard s.isdisjoint s.pop s.symmetric_difference_update
(4) dict(字典):
In [32]: dict.
dict.clear dict.fromkeys dict.has_key dict.iteritems dict.itervalues dict.pop dict.setdefault dict.values dict.viewkeys
dict.copy dict.get dict.items dict.iterkeys dict.keys dict.popitem dict.update dict.viewitems dict.viewvalues
4、迭代器和列表解析
可将一个可迭代的对象转换为迭代器类型,使用迭代器可以极大地提升代码效率,节省内存。原因是:假设有10W个元素的列表,当使用for循环或者列表解析的方法来访问每个元素时,python解释器总是将10W个元素同时加载到内存中,若元素更多时,可能会使得内存被耗尽,而当使用迭代器时,迭代器每次将列表中的一个元素加载进内存进行处理,大大减轻了内存的压力,因此执行效率更高。
In [32]: li = [range(1000)]
In [40]: a = iter(li)
In [41]: a.next()
列表解析:
In [41]: li = [1,2,3,4]
In [43]: li1 = [i for i in li]
In [44]: li1
Out[44]: [1, 2, 3, 4]
In [45]: li1 = [i for i in li if i > 2]
In [46]: li1
Out[46]: [3, 4]
In [47]: li1 = [i+1 for i in li if i > 2]
In [48]: li1
Out[48]: [4, 5]
原文地址:http://10843840.blog.51cto.com/10833840/1786157