python从入门到放弃表情图-Python 从入门到放弃(一)

  • Post author:
  • Post category:python


Python 从入门到放弃(一)

一个没有逻辑顺序的python笔记,包括日常使用python时的总结与阅读《Python基础教程》([挪] Magnus Lie Hetland 著) 的读书笔记:

SouthEast

2011/11/20 Mon 15:29

列表 (List) 和元组 (Tuple)

Python中有6中内建序列(sequence):list,tuple,字符串,Unicode字符串,buffer,xrange。

序列和映射是两种主要的容器(container)。

序列包括 list 和 tuple , 映射包括 dict

set 即不是序列又不是映射

序列操作:indexing,slicing,adding,multiplying

slicing:第一个参数包含,第二个不包含,可以用第三个参数指定步长,步长可以是负数。

In [4]: a

Out[4]: [0, 1, 2, 3, 4, 5, 6, 7, 8]

In [5]: a[8:3:-2]

Out[5]: [8, 6, 4]

adding:同类序列可以相加,进行连接

multiplying:新的序列重复原有序列,乘数为重复次数

In [6]: a = [1,2] * 8

a

Out[7]: [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2]

None 用来代表空值,类似matlab的NaN,如需要无值的初始化,可以:

a = [None] * 6

a

Out[9]: [None, None, None, None, None, None]

成员资格:in 来检查是否是成员,对于字符串可以如下:(Python2.3起)

In [10]: sub = ‘too young too simple’

In [11]: ‘you’ in sub

Out[11]: True

In [12]: ‘naive’ in sub

Out[12]: False

分片赋值:可以替换成与原序列不等长的内容:

name = list(‘Pear’)

name

Out[26]: [‘P’, ‘e’, ‘a’, ‘r’]

name[1:] = list(‘ahahaha’)

name

Out[28]: [‘P’, ‘a’, ‘h’, ‘a’, ‘h’, ‘a’, ‘h’, ‘a’]

同时分片赋值还能实现 insert 的 method 功能,非常高级666:

numbers = range(5)

numbers

Out[14]: [0, 1, 2, 3, 4]

numbers[1:1]

Out[15]: []

numbers[1:1] = [666,666]

numbers

Out[17]: [0, 666, 666, 1, 2, 3, 4]

list 的各种 method :append,count(查元素个数),index(第一个匹配项的索引位置),insert,pop(默认LIFO,可指定pop(someindex) )。

reverse 方法可以反向存放。(注意列表的 method 一般都为原位操作,改变原列表),sort 排序。reversed 和 sorted 函数可以不改变原 list 。

a

Out[30]: [3, 5, 1, 8, 6, 9]

sorted(a)

Out[31]: [1, 3, 5, 6, 8, 9]

a

Out[32]: [3, 5, 1, 8, 6, 9]

a.sort()

a

Out[34]: [1, 3, 5, 6, 8, 9]

sort 排序可以传参数,key可以传len,表示按照长度排序。反向排序reverse=True:

a.sort(reverse=True)

a

Out[40]: [9, 8, 6, 5, 3, 1]

tuple 是不可变的 sequence,不能修改。用逗号分割一些值实际上就是创造了tuple,而单个值加逗号也可以创建tuple:

1,

Out[41]: (1,)

1,2,3

Out[42]: (1, 2, 3)

tuple 能在映射(dict)和集合的成员中作 key ,而 list 不行。

tuple 作为很多内建函数的返回值。

THE END