吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1083|回复: 17
收起左侧

[求助] python编程求助

[复制链接]
qqq789 发表于 2022-10-14 15:25
python新手,
今天在编写练手项目的时候出现了一个问题, 我的目的是将这个生成的字典里面删除  方块A , 结果梅花,黑桃,红心,中的A都被删除了, 想了很久也没想出解决办法.
代码如下:
[Asm] 纯文本查看 复制代码
poker = {}  # 创建一个扑克的字典
shuzi = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
# 每个花色有13张牌,都需要添加进去
poker["方块"] = shuzi  # 方块
poker["梅花"] = shuzi  # 梅花
poker["黑桃"] = shuzi  # 黑桃
poker["红心"] = shuzi  # 红心
print(poker)

print("删之前的方块:", poker["方块"])
print("删之前的梅花:", poker["梅花"])
print("删之前的黑桃:", poker["黑桃"])
print("删之前的红心:", poker["红心"])

poker["方块"].remove("A")  #删除 方块A

print("删除之后的方块:", poker["方块"])
print("删除之后的梅花:", poker["梅花"])
print("删除之后的黑桃:", poker["黑桃"])
print("删除之后的红心:", poker["红心"])


运行结果是:
[Python] 纯文本查看 复制代码
{'方块': ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'], 
'梅花': ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'], 
'黑桃': ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'], 
'红心': ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']}
删之前的方块: ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
删之前的梅花: ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
删之前的黑桃: ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
删之前的红心: ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
删除之后的方块: ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
删除之后的梅花: ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
删除之后的黑桃: ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
删除之后的红心: ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']


希望有大佬能帮我解惑,万分感谢 {:1_893:} {:1_893:} {:1_893:}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Edison666 发表于 2022-10-14 16:02
每一个都是相当于{key : 列表},而你的删除行为相当于操作了列表
ly:幽灵 发表于 2022-10-14 16:06
你操作了list,你可以理解成里面的列表都是同一个,只是一个软链接映射,你直接字典key : [value]这样就好了

poker["方块"] = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']  # 方块
poker["梅花"] = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']  # 梅花
poker["黑桃"] = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']  # 黑桃
poker["红心"] = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']  # 红心
kill-9 发表于 2022-10-14 16:21
poker["方块"] = shuzi[:]  # 方块
poker["梅花"] = shuzi[:]  # 梅花
poker["黑桃"] = shuzi[:]  # 黑桃
poker["红心"] = shuzi[:]  # 红心

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
copyany + 1 + 1 我很赞同!

查看全部评分

weiekko 发表于 2022-10-14 16:22
本帖最后由 weiekko 于 2022-10-14 16:50 编辑

python 变量是引用


x = [3,4]
y = x
x.remove(3)
print(y)  # y = 4




不可变类型,内存中的数据不允许被修改:

        数字类型:int、bool、float、complex、long(2,x)

        字符串:str

        元组:tuple

可变类型,内存中的数据可以被修改:

        列表:list      <字典的key只能使用不可变类型的数据>

        字典:dict

<注>

1、可变类型的数据变化,是用过 方法 来实现的

2、如果给一个可变类型的变量,赋值了一个新的数据,引用会修改

        变量不再对之前的数据引用,而改为对新赋值的数据引用

森岛帆高 发表于 2022-10-14 16:38
weiekko 发表于 2022-10-14 16:22
python 变量都是引用
就比如
x = 3

Clip_20221014_163634.png
应该拿个引用类型举例吧

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
weiekko + 2 + 1 用心讨论,共获提升!

查看全部评分

weiekko 发表于 2022-10-14 16:48
森岛帆高 发表于 2022-10-14 16:38
应该拿个引用类型举例吧

完了完了,忘了

x = [3,4]
y = x
x.remove(3)
print(y)  # y = 4
lizy169 发表于 2022-10-14 17:13
好多大神,学习了
ghd19940802 发表于 2022-10-14 17:29
简单来说就是 你看着显示了四个类型 其实它们指向的是同一个列表 你改动内容  就会影响全部的显示
白桦树Ted 发表于 2022-10-14 17:36
# 每个花色有13张牌,都需要添加进去
print(id(poker['方块']), id(poker['梅花']), id(poker['黑桃']), id(poker['红心']),) # 结果显示是同一个地址,remove了一个全都会改变。
poker["方块"] = shuzi  # 方块
shuzi = copy.deepcopy(shuzi)。# 加这一行代码
poker["梅花"] = shuzi  # 梅花
poker["黑桃"] = shuzi  # 黑桃
poker["红心"] = shuzi  # 红心
print(poker)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 05:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表