python5字典列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python5字典列表相关的知识,希望对你有一定的参考价值。
一 变量
# 变量是用一个变量名来表示,变量必须有大小变量名的开头不能是用 下滑线数字开头的
#:变量没有处置功能只是定义个名字只是绑定功能
二列表
# 定义:[]内用逗号分隔,按照索引,存放各种类型,每个位置代表一个元素的特性
# 1,可以存放多个值
# 2可以修改指定的索引位置对应的值,是可变的类型(可变类型的定义:是id 不变 type不变值变的过程)
# 1列表的一些操作方法:
# c=["alex","wang"] # for i in range (len(c)): # print(i) #:索引的方法 # for i in (c): # print(i) #:也是索引的方法 # c.append("asad") #:插入的方法到最后 #:c.insert(2,‘adadad‘) #:插入到指定的位置 #:c.pop(1) #:删除的功能后面加的索引值: #:c[1]="afafafa" #:替换的功能 #: exted 接受一个参数用列表来表示 #:c.remove(1) #:删除第一次出现的该元素 #:c,count() #;括号里写一个元素在这个列表里面出现了几次 #:c.index(2) #:第二个元素没有抛出异常 #:c.sort() #:排序的功能 #:c.reverse() #:反转的功能 #:clear #:清空的功能一般不用 #:c.extend(list) #:追加列表 就是吧list写到list
三元组
# tuple(元组)是另一种有序的列表()小括号表示
# tuple内容不能修改不能增加删除只能查看
# 定义单个元组时括号内要加(,)不加的话被认为是()Python优先级
# tuple中的不变是指每个元素的不变 但要是有
# list列表就会发生改变例如: t = (‘a‘, ‘b‘, [‘A‘, ‘B‘])
#:具有索引,切片,循环,的功能
四字符串
c="alex"
print(c.upper()) #:把字符中的小写字母转换成大写的字母 isupper判断是不是大写
print(c.lower()) #把字符中的大写字母变成小写字母
print(c.capitalize()) #:把开头的第一个单词变小写
print(c.title()) #:每个单词的第一个字母转换为大写其他小写
print(c.endswith(‘x") #:查看是否x结尾
print(c.startswith("a") #:查看是否a开头
print(c.find("a") #:查看a的索引位置
print(x.format) #:格式化字符串和%s差不多
print(c.isdigit()) #:查看字符串是否是数字
print(c.isspace()) #:是否是空格
print(c.replace(‘x‘,‘X‘) #:替换的功能
重点字符串
strip() #:去除空格还有一些特殊的符号 " ".join(["i","am","world!"]) 列表变换成字符串 " hello world". split ("1",1) 字符串变换成列表 "hello world".index("q") 索引 s.replace("world,","python") 替换 eval(字符串可以算加法 把字符放在python中可以执行) print("hello %s,%s"%("sb","egon")) 这就是传说中的格式化 print("hello{name},his age is {age}".formt(age),format(age= 30,name= "wusir")) print("一".isdigit())
五字典
# 定义:{key1:value1,key2:value2},key-value结构,keys必须是哈西值
#:特性:可以存放多个值2可以修改指定key对应的值,可变但是不能有两个相同的key 无需性
#:字典遍历就是用for循环第一个到最后一个的过程 dict的特点是查找速度快,无论有多少个都一样
# d={‘a‘:1,‘b‘:2,‘c‘:3,} # for k,v in d.items(): # print(k,v) #:通过这个方法能把字典中的a 和 数字1 #:goods={"tom":123,"alex":456,"egon";778,"tom":918} #:for k,v ingood.items(): #: # print(k,v) #:字典的遍历 #:for i in goods: # print(i,d[good]) #:循环 #:good["tom"]="123 #:字典的修改 #:good["gao"]="567 #:字典的增加 #:del good["tom"} #::字典的删除 #:good clear #:删除所有
# 请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
# 和list比较,dict有以下几个特点:
# 查找和插入的速度极快,不会随着key的增加而变慢;
# 需要占用大量的内存,内存浪费多。
# 而list相反:
# 查找和插入的时间随着元素的增加而增加;
# 占用空间小,浪费内存很少。
# 所以,dict是用空间来换取时间的一种方法。
# dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:
六、数据类型分类
1、可变不可变
可变:列表,字典
不可变:数字,字符串,元组
2、存放值的个数
一个值:数字,字符串
多个值(容器类型):列表,元组,字典
3、取值方式
直接取值:数字
序列类型:字符串,元组,列表
映射类型:字典
七作业
有如下值集合 [11,22,33,44,55,66,77,88,99,90...]将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {‘k1‘: 大于66的所有值, ‘k2‘: 小于66的所有值}即: {‘k1‘: 大于66的所有值, ‘k2‘: 小于66的所有值}
# c=[11,22,33,44,55,66,77,88,90] # b={"k1":[],"k2":[]} # for i in c: # if i >66: # b["k1"].append(i) # else: # b["k2"].append(i) # print(b)
二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
# for i in li: #:循环列表里面的信息 # b=i.strip() #:去除列表里面空格和其他 # if(b.startswith("a")or b.startswith("A")) and b.endswith("c"): # #:必须是以字母a开头或者是A开始并且是以c结尾: # print(b)
tu = ("alec", " aric", "Alex", "Tony", "rain")
# for i in tu: # b=i.strip() # if(b.startswith("a")or b.startswith("A"))and b.endswith("c"): # print(b)
dic = {‘k1‘: "alex", ‘k2‘: ‘ aric‘, "k3": "Alex", "k4": "Tony"}
# dic={‘k1‘:"alex",‘k2‘:"aric","k3":"Alex","k4":"tony"} # for i in dic: # b=dic[i].strip() # if(b.startswith("a")or b.startswith("A"))and b.endswith("c"): # print(b)
四、购物车
功能要求:要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]
选做题:用户交互,显示省市县三级联动的选择
# assert_all=0 #:定义你的钱数 # car_list=[] #:定义购物车 # while True: # i2 = input("请输入你所带的金钱:") # try: # assert_all=int(i2) #:如果你输入的是整数正确退出循环往下执行 # break; # except: # print("你输入的什么鬼") #:如果你输入的是其他的东西就会继续循环直达输入正确的整数 # continue; # goods = [ # {"name": "电脑", "price": 1999}, # {"name": "鼠标", "price": 10}, # {"name": "游艇", "price": 20}, # {"name": "美女", "price": 998}, # ] # for i in goods: # print(i["name"],i["price"],"元") #:循环购物车里面的东西 # while True: # i2=input("请你选择商品(滚/y退出):") #:输入选择的商品 # if i2.lower()=="y": #:如果输入的是 “y”就退出 # break; # for j in goods: # if j["name"] == i2: #:如果输入的存在字典里面 # car_list.append(j); #:添加到字典里面去 # print("","电脑",1999,"元","\n","鼠标",10,"元","\n","游艇",20,"元""\n","美女",998,"元") # print(car_list) #:打印购物车里面的东西 # all_price=0 #:定义 # for item in car_list: #:循环购物车里面的东西 # p=item["price"] #:一件东西的价格 # all_price=all_price+p #:东西一共多少钱 # print(assert_all,all_price) #:打印定义的钱和一共花了多少钱 # if assert_all >all_price: #:如果所带的钱比买的东西钱多 # # print("买的起") # c=assert_all-all_price #:剩余的钱数
# print("总计:",assert_all,"消费:"all_price) # print("买的起你的剩余金钱为:",c) #:打印出来 # print("欢迎下次光临") # else: # h=all_price-assert_all #:如果你带的钱没有购买商品的钱多 # print("你买不起欠的钱为:",h) #:打印你欠了多少钱 # i3=input("钱不够可以充钱:") #:输入你要冲值的钱 # if int(i3)>h: #:如果大于缺的钱数就会打印买的起 并且会 打印你剩余的钱数 # print("买得起") # f=int(i3)-h # print("剩余金钱为:",f) # print("欢迎下次光临") # else: # print("你输入的钱还差一些返回你冲的钱:",i3) #:如果你输入欠的钱不够就花返给你并且退出 # print("欢迎下次光临") #