python起步3
9:20 2008-9-26
2、字典
键值对的组合
键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割而各个对用逗号分割,所有这些都包括在花括号中。
记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。
(1)、定义与访问
ab = {'Swaroop':'Swaroopch@byteofpython.info',
'Larry':'larry@wall.org',
'Matsumoto':'matz@ruby-lang.org',
'Spammer':'Spammer@hotmail.com'
}
print "Swaroop's address is %s" % ab['Swaroop']
使用索引操作符来寻址一个键并为它赋值
(2)、添加与删除
ab['Guido'] =
[email='guido@python.org']'guido@python.org'[/email]
del ab['Spammer']
(3)、使用字典的items方法,来使用字典中的每个键/值对,这会返回一个元组的列表,其中每个元组都包含一对项目——键与对应的值。
print '\nThere are %d contacts in the address-book\n' % len(ab)
for name,address in ab.items():
print 'Contact %s at %s' % (name,address)
(4)、使用in操作符来检验一个键/值对是否存在
if 'Guido' in ab:
print "\nGuido's address is %s" %ab['Guido']
注:或者使用dict类的has_key方法
(5)、使用help(dict)来查看dict类的完整方法列表。
(6)、关键字参数与字典。如果换一个角度看待你在函数中使用的关键字参数的话,你已经使用了字典了!
3、序列
列表、元组和字符串都是序列。
列的两个主要特点是索引操作符和切片操作符。
索引操作符让我们可以从序列中抓取一个特定项目。
切片操作符让我们能够获取序列的一个切片,即一部分序列。
shoplist = ['apple', 'mango', 'carrot', 'banana']
(1)、使用索引取得序列中的单个项目:下标操作
shoplist = ['apple', 'mango', 'carrot', 'banana']
索引同样可以是负数,位置是从序列尾开始计算的
print 'Item -1 is', shoplist[-1]
(2)、切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割。
print 'Item 1 to 3 is', shoplist[1:3]
输出位置1与位置2的值
注意,返回的序列从开始位置 开始 ,刚好在 结束 位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。
shoplist[:]返回整个序列的拷贝。
负数用在从序列尾开始计算的位置。例如,shoplist[:-1]会返回除了最后一个项目外包含所有项目的序列切片
4、参考
当创建一个对象并给它赋一个变量的时候,这个变量仅仅 参考 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
记住列表的赋值语句不创建拷贝。你得使用切片操作符来建立序列的拷贝。
shoplist = ['apple', 'mango', 'carrot', 'banana']
mylist = shoplist # mylist与shoplist指向同一对象
del shoplist[0] #mylist与shoplist中的[0]都被删除
mylist = shoplist[:] # make a copy by doing a full slice
del mylist[0] # 只删除mylist[0],不影响shoplist
5、更多字符串的内容
字符串也是对象,同样具有方法。都是str类的对象
name = 'Swaroop' # This is a string object
if name.startswith('Swa'):
print 'Yes, the string starts with "Swa"'
startwith方法是用来测试字符串是否以给定字符串开始。
if 'a' in name:
print 'Yes, it contains the string "a"'
in操作符用来检验一个给定字符串是否为另一个字符串的一部分。
if name.find('war') != -1:
print 'Yes, it contains the string "war"'
find方法用来找出给定字符串在另一个字符串中的位置,或者返回-1以表示找不到子字符串。
delimiter = '_*_'
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
str类也有以一个作为分隔符的字符串join序列的项目的整洁的方法,它返回一个生成的大字符串。