第二周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(" ",i)
input2 = input(" 查哪个市?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(" ",i)
input3 = input(" 查哪个县?back返回exit退出")
if input3 in china_data[input1][input2]:
for i in china_data[input1][input2][input3]:
print(" ",i)
input4 = input(" 继续吗?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("您输入的省不存在,重新输入")
原文地址:https://www.cnblogs.com/zhangmingda/p/9003555.html