1.列表推导式的转化:映射
result = [list1[list2.index(each)] for each in list3]
result = []
for each in list3: #list3为输入的值,要在list2中寻找和list3中相同的输入的值的索引值
temp = list2.index(each) #将对应位置的索引值放入临时的列表中
result.append(list1[temp]) #将对应位置的索引值在list1中的元素放入结果
list1 = [摩斯电码表]
for each in list2#输入值:
temp = list1.index(each) #映射:找索引值
result.append(list1.[temp+1])
result = [list1[list1.index(each)+1] for each in list2]
#把每个在list2中的与list1中元素相等的值的索引值,放到一个临时列表里,把这些个索引值+1对应的在list1中的元素组成一个新列表
2.几对映射关系
>>> diction = {'阿米娅':'兔子','凯尔希':'猞猁'}
>>> type(diction)
<class 'dict'>
>>> diction['阿米娅'] #读取
'兔子'
>>> diction['陈'] = '龙'
>>> diction
{'阿米娅': '兔子', '凯尔希': '猞猁', '陈': '龙'}
>>>
>>> dict1 = {}
>>> dict1 = dict(((1,'two'),(2,'three'))) #dict后跟参数,括号里跟元组,元组里的括号是映射关系
>>> dict1
{1: 'two', 2: 'three'}
>>>
添加字典元素:
tinydict['Age'] = 8 # 更新 Age
删减字典元素:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # 删除键 'Name'
tinydict.clear() # 清空字典
del tinydict # 删除字典
3.split函数:
>>> str1 = '12#23#34#45'
>>> str1.split('#',1)
['12', '23#34#45']
>>> str1.split('#')
['12', '23', '34', '45']
4.
tinydict = {'Name': 'Runoob', 'Age': 27}
print ("Age : ", tinydict.get('Age'))
# 没有设置 Sex,也没有设置默认的值,输出 None
print ("Sex : ", tinydict.get('Sex'))
# 没有设置 Salary,输出默认的值 0.0
print ('Salary: ', tinydict.get('Salary', 0.0))
5.
>>> dict1 = {}
>>> dict1 = {1:'one',2:'two',3:'three'}
>>> dict1.keys()
dict_keys([1, 2, 3])
>>> dict1.values()
dict_values(['one', 'two', 'three'])
>>> dict1.items()
dict_items([(1, 'one'), (2, 'two'), (3, 'three')])
>>> dict1.pop(2)
'two'
>>> dict1
{1: 'one', 3: 'three'}
>>> dict1.popitem()
(3, 'three')
>>>
6.通讯录作业:
print('欢迎进入通讯录程序')
print('1.查询联系人')
print('2.插入联系人')
print('3.删除联系人')
print('4.退出通讯录')
contact={'小王':123,'小李':254,'小张':125,'小徐':785}
while 1:
jianru = input('请输入操作符:')
if jianru == '1':#1操作
jianru1 = input('请输入要查询的联系人:')
print(contact[jianru1])
continue
if jianru == '2':#2操作
jianru21 = input('请输入插入的联系人姓名:')
jianru22 = input('请输入新建联系人的号码:')
contact[jianru21] = jianru22
print('新建通讯录:')
print(contact)
continue
if jianru == '3':#3操作
jianru3 = input('请输入要删除的联系人:')
del contact[jianru3]
print('新建通讯录:')
print(contact)
continue
if jianru == '4':#4操作
break
else:
print('无效操作,请重新输入:')
continue
7.登入程序作业:
我的:
#初始化
print('|--- 新建用户:N/n ---|')
print('|--- 登录账号:E/e ---|')
print('|--- 退出程序:Q/q ---|')
state_deng = 2
state_yonghu = 2
ku = {'小王':123,'小李':254,'小张':125,'小徐':785}
#程序
while 1:
inp = input('|--- 输入指令代码:')
#注册程序
if inp == 'N' or inp == 'n':
yonghu = input('请输入用户名:')
for eachkey in ku.keys():#判断是否用户名重复
if eachkey == yonghu:
state_yonghu = 0 #重复用户名
break
else:
state_yonghu = 1 #可用用户名
continue
if state_yonghu == 0:
print('此用户名已被使用,请重新输入')
continue
elif state_yonghu == 1:
password = input('请输入密码:')
password = int(password)
ku[yonghu] = password
print('注册成功')
continue
#登录程序
if inp == 'E' or inp == 'e':
yonghu = input('请输入用户名:')
for eachkey in ku.keys():#判断是否用户名重复
if eachkey == yonghu:
state_deng = 1 #已注册用户名
break
else:
state_deng = 0 #未注册用户名
continue
if state_deng == 1:
password = input('请输入密码:')
password = int(password)
if password == ku[yonghu]:
print('登入成功')
continue
else:
print('密码错误')
continue
elif state_deng == 0:
print('用户未注册')
continue
#退出程序:
if inp == 'Q' or inp == 'q':
break
#检验程序
print(ku)
范例:
def new_user():
prompt='请输入用户名:'
while 1:
name=input(prompt)
if name in user_data:
prompt='此用户已经被占用,请重新输入'
continue
else:
break
password=input("请输入密码:")
user_data[name]=password
print("注册成功,赶快登陆吧")
def old_user():
prompt='请输入用户名:'
while 1:
name=input(prompt)
if name not in user_data:
prompt='您输入的用户名不存在,请输入:'
continue
else:
break
password=input("请输入密码:")
pwd=user_data.get(name)
if password==pwd:
print("欢迎进入系统!")
else:
print("密码错误")
def showmenu():
prompt='''
新建用户:N/n
登录账号:E/e
退出程序:Q/q
请输入指令代码:'''
while 1:
chosen=False
while not chosen:
choice=input(prompt)
if choice not in 'EQNneq':
print('代码指令错误,请重新输入')
else:
chosen=True
if choice=='q'or choice=='Q':
break
if choice=='N'or choice=='n':
new_user()
if choice=='e'or choice=='E':
old_user()
showmenu()
8.集合: