努力不一定成功但放弃就一定失败
分类: python/ruby
2012-11-07 15:58:58
本文转自:
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 桥梁设计