Python3——元组与购物车程序练习
由pycharm中没有找到sys模块引发的深层讲解:
- python解释器自带的、由C语言编写的,无法像OS那样找到由OS编写的OS.py的文件
- 浅copy的定义
- 浅copy的使用
浅copy定义:
- 第二个列表要copy第一个列表,第二个列表中的内容,实际上是第一个列表中的元素的引用而已。
浅copy的使用:
假设有两个列表,列表1person=[“name”, [a, 100]],要做一个浅copy有三种方法,如下:
P1=copy.copy(person)
P2=person[:]
P3=list(person)
copy的现实使用案例:
夫妻共同账户,建立一个列表person=[“name”, [a, 100]],夫妻分别为P1,P2
P1= person[:]
P2= person[:]
P1[0] =’Alex’
p2[0] =’Beauty’
执行后,会发现,P1和P2的name分别改为了Alex和Beauty。
一、列表操作
列表:names = [‘Alex’,”Tenglan”,’Eric’]
注意,列表用的是方括号
通过下标访问列表中的元素,下标从0开始计数,还可以倒着取列表中的元素。列表中的最后一个元素的下标就为-1,倒数第二个元素下标为-2,以此类推。
列表切片
names[a:b] a为起始下标,b为终止下标。取元素值时,包含a,但是不包含b。a为空,表示从头取,b为空,表示取到最后一个值。
names[a:b:c] c为步长,表示每两个元素中取一个元素。追加
names.append(“我是新来的”)
- 插入
names.insert(2,”插入的数据”)
- 修改
names[2] = “该换人了” 将下标为2的元素换为新的
- 删除
del names[2] 删除下标为2的元素
names.remove(“Eric”) #删除指定元素
names.pop() #删除列表最后一个值
- 扩展
names = [‘Alex’, ‘Tenglan’, ‘Rain’, ‘Tom’, ‘Amy’] #列表1
b = [1,2,3] #列表2
names.extend(b)
names = [‘Alex’, ‘Tenglan’, ‘Rain’, ‘Tom’, ‘Amy’, 1, 2, 3] #扩展后的列表
拷贝
names = [‘Alex’, ‘Tenglan’, ‘Rain’, ‘Tom’, ‘Amy’, 1, 2, 3]
name_copy = names.copy()
name_copy = [‘Alex’, ‘Tenglan’, ‘Rain’, ‘Tom’, ‘Amy’, 1, 2, 3]
浅copy的具体用法见本章初。统计
names.count(“Amy”) #统计names列表中Amy的数量
- 排序&反转
names.sort() #排序
names.reverse() #反转
- 获取下标
names.index(“Amy”) #只返回找到的第一个下标
二、元组
元组和列表相似,都是存一组数,区别在于列表的数据可增减,而元组的数据不能更改,因此元组又叫只读列表
语法:只有两个,index和count
三、字典
字典中有两类元素,分别为key和value,且二者一一对应。
例
info={‘key1’:’value1’,
‘key2’:’value2’
‘key3’:’value3’}
字典是无序的,且key是唯一的,具有天然去重性。
语法
- 增加
info[key4]=’value4’ 即可增加一组key和value。
- 修改
info[key1]=’value11’即可将原key1对应的value改为value11
删除
info.pop(‘key1’)#删除指定的key1
del.info[‘key1’]#删除指定的key1
info.popitem() #随机删除查找
‘key1’in info #查询key1 是否在info中
info.get(‘key2’) #查找key2对应的value值
info[‘key2’] #获取key2的value值。
后两种方法的区别:当没有对应key的value值时,get方法会返回none,不会报错,另一种则会报错。
- 多级字典嵌套及操作
map ={
“华东”:{
“上海”:[“黄浦区”,”卢湾区”,”徐汇区”,”长宁区”,”普陀区”],
“安徽”:[“合肥市”,”芜湖市”,”淮南市”,”马鞍山市”],
“江苏”:[“南京市”,”无锡市”,”徐州市”,”常州市”,”苏州市”]
},
“华北”:{
“北京”:[“东城区”,”西城区”,”朝阳区”,”丰台区”,”石景山区”,”海淀区”],
“山西”:[“太原市”,”大同市”,”阳泉市”,”长治市”],
“河北”:[“石家庄市”,”唐山市”,”秦皇岛市”,”邢台市”]
} }