第二周python学习
18/12/25
第三章 结构化数据
列表会维持对象插入时的顺序,python中的字典输入和输出顺序有可能不一样,也就是说并不会想列表一样维持对象插入时的顺序,但是字典中的数据行也并不是按某种特定的顺序,字典是无序的。
字典:是一个有两列任意多行的表。
中括号记法:列表使用数值索引值来访问数据,字典使用键来访问其关联的数据值。
例如:person3[‘Name’]
输出:’NameFord’
因而,当通过键来访问其关联的数据值,字典有无序就显得并不重要。
扩展字典:给字典中增加新的数据行,可以使用中括号记法:
person3[‘age’]=33
使用字典完成频度计数:
found = {} 大括号本身表示初始为空的字典
found[‘a’]=0 用来初始化一个字典数据值,字典的键必须初始化
对字典中某个数据值的频度进行递增操作符:+=,-+
found[‘e’] = found[‘e’]+1
found[‘e’]+=1
用for迭代处理一个字典时,解释器只处理字典的键。要访问关联的数据值,需要把各个键放在中括号里,结合使用自点名来访问与这个键关联的值。
for k in found:
print(k,’wasfound’,found[k],’times’)
sorted()函数可以使得字典按顺序输出
sourted(found)
items()
if … not in….:
if ‘pears’ not in fruits:
fruits[‘pears’]=0
fruits[‘pears’]+=1
fruitst
setdefault()
fruits.setdefault(‘pears’,0)
问题:字典可以快速完成查找是因为:使用了高度优化的散列算法???什么是散列算法?
18/12/26
集合:
集合的特性:不允许有重复值。{ }
集合和列表的对比:如果主要操作是查找,集合要比列表快的多。列表总是完成速度很慢的顺序搜索。
集合和字典的赋值区别:集合:{, , , ,}
字典:{: , : , : ,}
18/12/30
set()函数---向一个变量赋一个新的集合对象
集合方法:
并集:union()函数---将一个集合与另一个集合合并,由两个集合中所有唯一的对象组成。
差集:difference()函数
例如:d=vowels.difference(set(word))----包含在vowels中但不在set(word)中的对象。
交集:intersection()函数---两个集合中的共同对象。