长风破浪正其时,Python天谴变通途(9)(字典:不仅仅可以look over哦)

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.集合:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值