第二周Python笔记 数据类型 列表 字典
列表,拉锁式儿合并。
[ [a,b] for a,b in zip(list1,list2)]
#最笨的 a=[1,2,3,4,5] b=[2,3,4,5,6] d=[] for i in range(len(a)): c = [] c.append(a[i]) c.append(b[i]) d.append(c) #列表垂直合并 In [8]: list3 Out[8]: [['11:00', '11:01', '11:02'], ['2', '2', '3']] In [9]: [[a,b] for a,b in zip(*list3)] Out[9]: [['11:00', '2'], ['11:01', '2'], ['11:02', '3']] #两个列表合并为元组 In [10]: [a for a in zip(list1,list2)] Out[10]: [('11:00', '2'), ('11:01', '2'), ('11:02', '3')] #一个列表顺序合并 date=[] date_temp1=['1545225954.721;1545225955.115', '1545225955.215;1545225955.316;1545225955.422', '1545225955.708;1545225955.817;1545225955.916', '1545225956.230;1545225956.319'] date_temp2=[] for i in range(len(date_temp1)): if date_temp1[i]: date_temp2.append(date_temp1[i].split(';')) print(date_temp2) for i in date_temp2: for j in i: date.append(j)
字典key-value的删除、def(dict['key']) ; dict.pop(“key”)
查询value:dict.get(“key”)
查询所有keys,values()
转换为列表.items()
fromkeys([key1,key2,key....],"default_value)初始化一个字典:注意初始化的value为一个内存地址。
注意多层级的初始化字典的坑
for循环取值
省市县多级字典查询while死循环查询if判断,for遍历取值
省市县级查询,每一级都可以exit退出查询程序,或者back返回上级重新选择再查询。
应用重点知识:
elif可以多次进行判断使用,判断是输入back返回上一级,输入exit退出程序
每一个层级,如果是选择了输入exit,就赋值一个变量。然后break退出本次while循环,然后这个变量在退出while循环后,这个变量会存在。给上一个while循环做判断:进入每个层级的时候都先判断这个exit_变量是否存在,存在就依次退出while并向上级传递exit_变量的存在。依次退出直至退出整个程序。
补充新知识:判断变量是否存在
python中检测某个变量是否有定义
第一种方法使用内置函数locals():
'testvar' in locals().keys()
第二种方法使用内置函数dir():
'testvar' in dir()
while True:
if "exit_" in locals().keys(): #判断变量是否存在,存在就跳出循环:做退出程序用,
break
else:
pass
for i in china_data:
print(i)
input1 = input("查哪个省?quit/exit可退出")
if input1 in china_data:
while True:
if "exit_" in locals().keys(): #判断变量是否存在,存在就跳出循环:做退出程序用
break
else:
pass
for i in china_data[input1]:
print("\t",i)
input2 = input("\t\t查哪个市?back返回exit退出")
if input2 in china_data[input1]:
while True:
if "test_" in locals().keys(): #判断变量是否存在,存在就跳出循环:做退出程序用
break
else:
pass
for i in china_data[input1][input2]:
print("\t\t",i)
input3 = input("\t\t\t查哪个县?back返回exit退出")
if input3 in china_data[input1][input2]:
for i in china_data[input1][input2][input3]:
print("\t\t\t",i)
input4 = input("\t\t\t\t继续吗?back返回,exit退出")
if input4 == "back":
break
elif input4 == "exit": #【最底层查询后,如果输入exit就赋值一个变量传给上层循环做判断】
exit_ = 1
print("退出程序")
break
elif input3 == "back":
print("退出县级")
break
elif input3 == "exit": #【选择县级时如果输入exit就赋值一个变量传给上层循环做判断】
exit_ = 1
print("退出程序")
break
else:
print("您输入的县不存在,重新输入")
elif input2 == "back":
print("退出市级")
break
elif input2 == "exit": #【选择市级时,如果输入exit就赋值一个变量传给上层循环做判断】
print("退出程序")
exit_ = 1
break
else:
print("您输入的市不存在,重新输入")
elif input1 == "quit":
print("退出查询")
break
elif input1 == "exit": #【判断刚进入程序时(选择省级时),如果输入的市exit就退出程序】
exit_ = 1
print("退出程序")
break
else:
print("您输入的省不存在,重新输入")
posted on 2018-05-07 16:44 zhangmingda 阅读(182) 评论(0) 编辑 收藏 举报