1 元组:(tuple)
tuple:()相比较列表list:[]
元组和列表都是一种有序集合,(0,2,3,5,9),第一个元素即是第一个存入的元素,
按照存放顺序存储。
#元组的访问
#格式:元组名[下标]
tuple4 = (1,2,3,4,5)
print(tuple4[0]) # 1
# 获取最后一个元素
print(tuple4[-1]) #5
删除元组
tuple1 = (1,2,3)
del tuple1 #会报错因为没有了
元组的截取
元组的特点: 1)与列表非常相似
2)一旦初始化就不能修改
3)使用小括号
index = 空元组
index = (1,) 注意:创建元组时,如果只有一个元素,元素后面需要带上逗号","
如果不加,系统默认为index变量即是元素。
index = (1,2,3,4)
index[0] = 5 # 结果会报元组元素值不能修改
注意:只有元组的元素是非元组类型(列表或字典),即可改变元素(item)内部的值
tupe(元组)和list(列表)的相互转换:
l = list("abc") #["a","b","c"]
t = tupe(l) #('a','b','c')
例 练习:输入10个指定函数的解释文本
# coding:utf-8
funs_tuple = ('list','tuple','max','len','os','listdir')
funs_list = [] #存放输入函数的说明(解释)
for fun_name in funs_tuple:
info = input('{0}功能:'.format(funs_name))
funs_list.append(info)
2 集合
set:无序,无重复
创建集合:s = set()
s = set([1,2,3]),l = list('abc'),s = set(l)
向集合中添加元素: s.add(item) (item)可以是任意类型 添加元素 除了列表
s.add([1,2,3]) # error, 列表不能被hash转换,列表是可变的
s.add((1,2,3)) # ok , 元组中的元素是不可变的
修改和访问集合中(某一)个元素:
s[0] 注意:集合是不存在下标的
访问:pop(), for a in s 来访问某一个元素,在for循环时外加一个if判断
pop() 从集合中开始位置弹出元素
修改:整体修改
s.update((2,2,4)) # 在原有的内容上,追加不重复内容
add()只添加一个元素, update()有可能添加多个元素(重复性)
删除集合:
pop()
remove(元素),如果元素不存在? 则会报错 KeyError(键错误)
clear()清空所有的元素
del s
help('keywords') 在交互环境中查看关键字
交集(&): 求相同的部分 set1 = set([12,23,78,999])
set2 = set([12,45,78,56,85])
set3 = set1 & set2
print(set3)
取两个集合相同部分
并集(|):合并两个集合
set1 = set([12,23,78,999])
set2 = set([12,45,78,56,85])
set3 = set1 | set2
print(set3)
取两个所有部分,并去掉重复的
字典:
以'{}'包裹元素:
以 key-value()
集合:{'1','2','3'}, 只是key部分
字典:{'1':'计算三角形面积','2':'圆形面积','3':'矩形面积'}
例 抽取水果特性,并用字典描述水果的实例
水果属性:分类cate,品种pz,产地,cd
字典:{'cate':'苹果','pz':'红富士','cd':'洛川'}
字典的特点:1:字典本身是可变类型
2:极快的查找速度
3;key具有唯一性
4;key具有无序性
5;key需要不可变数据类型(字符串,数字)
6;当key重复的时候,只保留一个,自动舍弃其它值
字典添加属性及属性值(key-value键值对)
fruit_dict = {}
fruit_dict['cate'] = '' #cate作为键key使用,如果不存在,则会添加《
#如果存在,则会更改
删除:
pop('price') #将弹出price的key-value键值对
1)获取所有key集合
key()函数
2)循环读取字典的内容value
for key in fruit.keys():
print(key)
print(fruit.get(key)) #从字典中获取key的value
print(fruit[key]) #从字典中获取key的value
3)获取所有的key-value的items,并循环读取
dels_key = set()
for item in fruit.items():
#item:(key,value)
print(item[0],item[1])
if item[0]=='cate'
dels_key.add(item[0])
fruit.popitem(item) #报错 RuntimeError运行时异常,
fruit.pop() # popitem()函数不需要item参数,随机或从末尾开始弹出
# 在字典的迭代外面去删除
for del_key in dels_key:
fruit.pop(del_key)
练习:水果管理小程序,功能:1;查询水果
2;添加水果
3;变更价格
4;删除水果
0;退出
水果的结构;
编号id,果名name,数量 cnt,价格price,销售排行sale_top
分析:
每种水果用dict字典来存储
再把每种水果存入到list列表中
收集数据时,按照格式来输入:id,name,cnt,price,sale_top
将输入的内容拆分成list
将key事先存入到list中