您的位置:首页 > 编程语言 > Python开发

python基础要点(1)-基本类型

2012-12-18 18:46 295 查看
1, 列表

1.1 列表特性

*和其他语言不同,在内存中的位置和引用关系如下。所以可以通过负数来访问列表成员。





其中的N == 序列的长度 == len(sequence)

*列表中的元素可以是不同类型的, 例如:[2, 'abc', [2,3,4]]

*列表中的某一个元素可以通过下标的偏移量得到,多个元素可以通过切片操作得到。

*列表中的成员可以增加,减少,反转等操作。

1.2 列表操作

*创建列表

s=[] #创建一个空列表

s=[1,2,"abc",[e,f,g]] #创建一个不同类型元素的列表

s=list('abc') #创建列表: b=[a,b,c]

*访问列表

seq[ind] 获得下标为ind 的元素(下标由0开始计数,和C语言一样)

seq[ind1:ind2] 获得下标从ind1(包括在内)到ind2(不包括在内)间的元素集合

seq[ind1:ind2:step] 按步长step获取从ind1到ind2的多个元素,例如seq[::-1]可以反转序列seq

*更新列表

seq * expr 序列重复expr 次

seq1+seq2 连接序列seq1 和seq2

*“ ”不能使得原来的列表扩展,而是新建了一个列表对象,如要扩展原来的列表可用extend()

*删除列表

s=[a,b,c]

del s[1] #删除位置1的元素,s=[a,c]

s.remove(b) #删除值b的元素,s=[a,c]

del s #删除整个列表

注:一般不用手动删除序列,会自动回收

*关系操作符

obj in seq 判断obj 元素是否包含在seq 中

obj not in seq 判断obj 元素是否不包含在seq 中

*列表解析

a = [i*2 for i in [8,-2,5]] #a=[16,-r,10]

*列表的序列类型函数

len() #列表元素个数

cmp() #比较列表中的元素值的大小

max()和min() #返回列表元素的最大值或最小值

sorted() 和 reversed() #注意排序是使用的ASCII码进行的

sum() #求列表元素之和

2,字符串

*在python中,字符串的单引号和双引号作用是一样的,这和其他语言不同。

*字符串是不可变类型,也就是说改变一个字符串的元素需要新建一个新的字符串。

*字符串的操作

(1)赋值操作

a = "abcd"

a = str(range(3)) #[0,1,2]

(2) 访问字符串

和访问列表的操作相似

a="abcd"

print a[:3] #abc

(3)修改字符串

a = "abcd"

b = a[:2] "efg" #abefg

(4) 删除字符串

a = "abcd" ; a=""

del a

注:字符串的删除操作不用手动做,系统会自动进行垃圾回收

*字符串操作符

(1)比较操作

a, b = "abc", "efg"

a < b # True

a == b # False 比较字符串时是按照ASII码进行比较的

(2) 切片操作

a[1:3] #和列表操作一样

a[-3:-1]

(3) 成员操作

用来判断一个字符或者一个子串是否出现在另一个字符串中。

"nm" is "abcnml" #True

"a" is not "cdef" #True

(4) 连接操作

a, b = "abc", "efg"

c = a b #c变成"abcefg"

这种连接方法效率比较低下,可以使用以下方法更好

法1: c = '%s%s' % (a,b) #c="abcefg"

法2: d = ''.join((a,b)) #d="abcefg"

(5) 把普通字符串转换成unicode字符串

若把一个普通字符串和一个unicode字符串连接,python会先把普通字符串转换成unicode字符串。

'hello' u'' ' world' # u'hello world'

(6) 重复操作(*)

a = 'Ni!' * 3 #a='Ni!Ni!Ni!'

(7) 字符串操作函数

(7.1) str.split([sep,[max]])

#注意

若该函数没有添加参数时,会按照\t或\n或\v或\r或\f或' '来进行分割。即使有多个\t连在一起,也会一起当成分隔符。

例如:s = "a b c
d"

s.split() #结果是 ['a','b','c','d']

#sep指定了多个字符,会把这些字符当成一个整体作为分隔符进行分割。

s.split(' ') #结果是:['a','b\tc','c','\td']

3,元组

(1)元组的特性

*元组中的元素是不可改变的

(2)元组的操作

t = () #创建一个空元组

t = (1, 2, "abc") #创建一个有3个元素的元组

t = (1,) #创建一个只有一个元素的元组

(3)访问元组

和序列的访问操作一样,都支持切片操作如:t[1],t[1:3],t[:3]

(4)更新一个元组

元组是不能改变的,要更新一个元组,就只有新建一个元组。

t = t1 + t2

t = t1 * 2

t = t + (1,2)

(5)删除一个元组

del t

(6) 元组操作符

<

is 或 is not

4, 字典

(1) 字典的特性

*字典是Python中唯一的映射类型。映射类型可以使用字符串作为键,而序列只能使用数字。

*字典的值没有任何的限制,可以是python的任意对象。

*字典的键字是由限制的:

.一个键值不能对应多个值

.键值必须是可以哈希的,也就是说键值必须是不可变类型的值

(2) 创建字典

d = {} #创建一个空字典

d2 = {'name': 'tom', 'age': 80} #创建一个有两个元素的字典

d3 = dict((['x',1], ['y',2])) #['y':2, 'x':1] #用工厂方法dict创建字典

d4 = {1:'tom1', 2:'tom2', 'allname':'tome'} #可用不同类型的键字

(3) 访问字典中的值

# 遍历字典

#从python 2.2开始可以使用 for key in d2:

for key in d2.keys():

print 'key=%s, value=%s' % (key, d2[key]) #遍历字典

# 访问某个值

print d2['name'] # tom

print '%(name)s is %(age)d '%d2 #直接利用print打印字典的值

#检查是否有键字存在

if 'name' in d2:

print d2['name']

(4) 修改字典

d2['name']='tom1' #ass

也可以使用Update()函数把整个字典的内容添加到另一个字典中

(5) 删除字典元素

del d2 #删除整个字典

del d2['name'] #删除字典中的name的值

d2.clear() #清楚d2中的所有条目

d2.pop('name') #删除并返回键字为name的条目

(6) 字典的内建函数

.在python下可以使用help(dict)来查看

.复制字典 d3=d2.copy()

.字典长度:键-值对的个数 len(d2)

(7) 字典的比较操作

比较算法: 1,比较长度 2,比较字典的键字 3,比较字典的值 4,若都相同返回0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: