为了账号安全,请及时绑定邮箱和手机立即绑定

添加值 SET python

添加值 SET python

慕丝7291255 2022-06-22 17:56:48
我开始自学 Python,我用谷歌搜索,但找不到解决方案,这是彩票代码的实践,我想问用户几个问题。它还在练习。我尝试构建“add_players()”部分。所以,我的代码现在user_players = set()lottery_numbers = {13, 21, 22, 5, 8}def menu():    user_input = input("ADD,SHOW,ROLL or QUIT  ")    user_input=user_input.upper()    while user_input != 'QUIT':        if user_input == 'ADD':            add_players()        #elif user_input == 'SHOW':        #   show_players()        elif user_input == 'ROLL':            roll()        else:            print('Done bye')        user_input = input("ADD,SHOW,ROLL or QUIT ")def add_players():    name_input = input('Name?: ')    numbers_input = int(input('number?: '))    new_users = user_players.add(        {            'name': name_input,            'numbers': numbers_input        }    )def roll():    for i in new_users:        Matched1 = i['numbers'].intersection(lottery_numbers)        print("{} matched {} ".format(i['name'], Matched1))menu()所以当用户选择“添加”时,我想为我的 SET 添加值这是这个逻辑def add_players():        name_input = input('Name?: ')        numbers_input = int(input('number?: '))        new_users = user_players.add(            {                'name': name_input,                'numbers': numbers_input            }        )例如,约翰福音 1,2,3,4,5我知道我应该使用 add 函数,但是我错过了这部分 new_users = user_players.add(                {                    'name': name_input,                    'numbers': numbers_input                }            )如何更改我的代码以添加玩家及其号码?所以当用户选择“滚动”时,它显示为“约翰匹配 5”
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

{

    'name': name_input,

    'numbers': numbers_input

}

不能添加到集合中,因为 dict 不可散列。尝试使用像元组这样可散列的数据结构来适应您的情况。


例如,


new_users = user_players.add((name_input, numbers_input))

同样对于您的滚动功能,您可以参考new_users该功能中无法访问的功能。new_users您在add_players函数中声明的仅存在于该函数中。所以你想在其他地方声明它,比如user_players在顶部的下面,并在你去的函数中添加它。


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号