努力不一定成功但放弃就一定失败
分类: Python/Ruby
2012-11-07 15:58:58
本文转自:http://blog.sina.com.cn/s/blog_4b5039210100e9yd.html
Python的数据访问模型:直接存取 ,序列 ,映射
对非容器类都可以直接存取,所有的数值类型归为此类。
序列类型是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素。 字符串列表元组归到次类
映射类型和序列类型不同之处,它使用的索引和顺序的数字偏移量不同,它的元素无序存放,通过唯一的key来访问。 字典就是这种类型。
下面要说的字符串(strings),列表(lists),元组(tuples),我们可以统称为序列。
序列有着相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,而要想一次得到多个元素,我们可以使用切片,下表偏移量从0开始,总元素数减1结束。
下面举几个例子,先看看什么事字符串,列表,元组。
字符串:
>>> a = 'Hello Python!'
>>> a
'Hello Python!'
>>> b = "This is 'Python'"
>>> b
"This is 'Python'"
>>> c = 'This is "Python"'
>>> c
'This is "Python"'
>>>
列表:
>>> a = [1, 2, 3, 4, 5]
>>> a
[1, 2, 3, 4, 5]
>>> b = [1, 'a', 2.5, 2+3j, "this is python list"]
>>> b
[1, 'a', 2.5, (2+3j), 'this is python list']
>>>
元组:
>>> a = (1, 3, 5, 7)
>>> a
(1, 3, 5, 7)
>>> a = ('a',2)
>>> a
('a', 2)
>>>
下面看一下序列通用的几个操作符:
1 连接操作符(+) 这个操作符允许我们把一个序列和另一个相同的序列做链接。
Sequence1+sequence2 结果是包含两个原序列内容的新序列。
>>> a = 'this is '
>>> b = 'Python'
>>> a+b
'this is Python'
>>>
2 重复操作符(*)
当你需要一个序列的多份拷贝时,重复操作符非常有用。
Sequence * copies_int
Copies_int必须为整型。
>>> a
'this is Python'
>>> a*3
'this is Pythonthis is Pythonthis is Python'
>>>
>>> b = [1, 2, 3]
>>> b*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>
3 切片操作符 [ ] [:] [: : ]
切片操作符应该是由最简单的取单个元素的操作扩展而来的。通常sequence[n]代表取出序列中第n+1个元素(因为元素下标从0开始)
>>> a = 'Python'
>>> a[2]
't'
>>> b = [1, 2, 3, 4]
>>> b[2]
3
>>> c = (1, 2, 3)
>>> c[2]
3
>>>
当中括号里面有个:的时候,代表冒号两边的数字规定了两个位置,我们把处于这个位置之中的所有元素取了出来。如果冒号两边什么都没有,代表取出所有元素,如果两边有数,例如sequence[m:n] 就是代表取出从下标为m的元素到下标为n-1的所有元素。如果中括号里两个冒号,那么两个冒号后面的数代表步长,就是隔几个元素取一次。下面一字符串为例详细说明。(其他的序列操作类似)
>>> a = 'Python'
>>> a[1]
'y'
>>> a[:]
'Python'
>>> a[1:4]
'yth'
>>> a = '10001000100010001'
>>> a[0:17:4]
'11111'
>>>
另外切片支持负数操作。比如
>>> a = 'Python'
>>> a[-1]
'n'
>>> a[-2]
'o'
>>> a[-6]
'P'
>>>
由此我们就可以很随意的取元素了。但是注意一点,平时我们不加步长,是因为我们默认是顺序取,并且步长为1,假如我们要倒着取,步长必须为负数才行,否则取的不正确。
>>> a = 'Python'
>>> a[-2:-4]
'' 这是错误的
>>> a[-4:-2]
'th'
>>> a[-2:-4:-1]
'oh'
>>> a[::-1]
'nohtyP'
>>>
4 成员操作符( in , not in )
>>> a = 'Python'
>>> 'p' in a
False
>>> 'y' in a
True
>>> b = [1, 2, 3, 4]
>>> 1 in b
True
>>> 5 in b
False
>>>
序列的一些常用的公用函数:
1 len() 获得序列的长度
>>> a = 'ddddddd'
>>> b = [1, 3, 4, 4]
>>> c = (1,3,4,4)
>>> len(a)
7
>>> len(b)
4
>>> len(c)
4
>>>
得出一点结论,Python字符串和C字符串不同的地方,Python字符串不会以空字符结尾
2 max() and min() 获得序列中最大和最小元素
>>> a = 'abcdefg'
>>> b = [1, 3, 5, 8]
>>> c = (2, 5, 1, 0)
>>> d = ['a',3,45,9]
>>> max(a)
'g'
>>> max(d)
'a'
>>> min(b)
1
>>> min(c)
0
>>>
下面接着看看标准内建函数:
1 type(object) 接受一个对象作为参数,并返回它的类型。
>>type(2)
>>
>>type(‘a’)
>>
2 cmp() 比较大小
>>> a = 4
>>> b = 8
>>> cmp(a,b)
-1
>>> cmp(b,a)
1
>>> a = 3
>>> b = 3
>>> cmp(a,b)
0
>>> a = 'lmn'
>>> b = 'abc'
>>> cmp(a,b)
1
>>>
3 str() 和repr()
>>> str(4.53-2j)
'(4.53-2j)'
>>> str(1)
'1'
>>> str([1, 3, 4, 5])
'[1, 3, 4, 5]'
>>> repr([1, 3, 4, 5])
'[1, 3, 4, 5]'
>>> '[1, 3, 4, 5]'
'[1, 3, 4, 5]'
最大行业软件2012-11-16 09:34:51
Oasys.Pile.V19.0
Oasys.Pilset.V19.1
Oasys.Safe.V19
Oasys.Slope.V19
Oasys.Xdisp.V19
Plaxis V8.5
Plaxis 3D Foundation V1.6
PLAXIS_3D_TUNNEL_V1.2
Plaxis.2D.V9.02.612
UDEC31 岩土分析软件
Z_soil2D V6.13 岩土分析软件
代尔夫特(DELFT)岩土所计算软件
DIGITAL_CANAL系列软件
LEAP_SOFTWARE_PRESTO_V8.6.1
LEAP_SOFTWARE_RC_PIER_V4.01桥梁工程软件
LEAP_SOFTWARe_LEAP_BRIDGE_V6.0
LEAP_SOFTWARE系列软件
SAM-LEAP5.V5.10D 桥梁设计