如何在 Python 中初始化空列表字典?

2023-12-09

我尝试以编程方式创建列表字典,但无法单独寻址字典键。每当我创建列表字典并尝试附加到一个键时,所有这些都会更新。这是一个非常简单的测试用例:

data = {}
data = data.fromkeys(range(2),[])
data[1].append('hello')
print data

实际结果:{0: ['hello'], 1: ['hello']}

预期结果:{0: [], 1: ['hello']}

这是有效的

data = {0:[],1:[]}
data[1].append('hello')
print data

实际和预期结果:{0: [], 1: ['hello']}

为什么是fromkeys方法没有按预期工作?


When []作为第二个参数传递给dict.fromkeys(),结果中的所有值dict将是same list object.

在 Python 2.7 或更高版本中,使用听写理解反而:

data = {k: [] for k in range(2)}

在早期版本的Python中,没有字典理解,但列表理解可以传递给dict构造函数改为:

data = dict([(k, []) for k in range(2)])

在2.4-2.6中,还可以将生成器表达式传递给dict,以及周围的括号可以被丢弃:

data = dict((k, []) for k in range(2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中初始化空列表字典? 的相关文章

随机推荐

  • 如何使用 Mac OS X 终端将目录中最旧或最新的文件移动到另一个目录

    我正在 Mac OSX 10 6 终端上尝试使用以下命令 但它不起作用 知道我可能做错了什么吗 这些工作 列出最近的文件 ls l t head 2 列出最旧的文件 ls gt tail 1 但当我尝试移动最旧的文件 这样它就不起作用 mv
  • MVC 页面首次查看速度缓慢

    我有一个简单的应用程序 其中包含 MVC 页面 除了 HTML 和 Razor C 代码 不多 之外 没有 javascript 图像或任何其他内容 在我看来 当页面第一次加载时 它们需要很长时间 然后加载速度就会快得多 第一次请求页面时
  • 使用 Ruby 从 CDIP 数据创建光谱热图或强度图

    背景 根据沿海信息数据计划 CDIP 他们正在生成波涌的光谱热 强度图 这是通过包含能量密度 持续时间 以秒为单位 和方向 以度为单位 180 度代表南 的数据动态生成的 数据样本 下面是对数据的解释 http cdip ucsd edu
  • 可以并行安装同一版本 Visual Studio 的多个套件吗?

    我想知道是否可以在同一台计算机上安装 Visual Studio 2008 Pro 和 Visual Studio 2008 standard 我尝试在express之后安装pro MSDN上提供的试用版 似乎要求它们安装在同一目录中 这是
  • 在不关闭键盘的情况下在文本字段之间切换时 Xcode 约束中断

    这几天我一直在与 Xcode 中的一个问题作斗争 但我不知道出了什么问题 我创建了一个带有三个独立文本字段的简单 UIViewcontroller 当我在模拟器或物理设备上运行应用程序时 当我点击文本字段时 我会在控制台中收到此警告 仅当我
  • 如何对 spring security @PreAuthorize 自定义表达式进行单元测试

    PostMapping ResponseStatus HttpStatus CREATED PreAuthorize messageSecurityService isAuthorized userAuthentication public
  • C/C++:将 char 中的十六进制值转换为整数

    我将十六进制值存储为字符 char A 0 char B 6 char C E 我需要将它们转换为整数 我知道 atoi 但这仅适用于十进制编码的字符值 有类似的功能吗 int v A gt 9 A 0x20 A 10 A 0 对于 ASC
  • 使用 JavaScript 验证电话号码

    我在一些网站上找到了这段代码 它运行得很好 它验证电话号码是否采用以下格式之一 123 456 7890 or 123 456 7890 问题是我的客户 我不知道为什么 也许是客户的东西 想要添加另一种格式 连续的十个数字 如下所示 123
  • 将鼠标悬停在 Chartjs 饼图上时画布填充文本消失

    我正在使用来自 Chartjs 的圆环图 并在画布的中心填充两行文本 这些在初始动画后显示得很好 但是当我将鼠标悬停在甜甜圈上时 会显示相关元素的工具提示 这是预期的 但填充文本消失 发生这种情况的任何原因以及我该如何纠正它 这是我用来在画
  • AngularJS 中的视图未更新

    在事件回调中更新模型时更新模型属性对视图没有影响 有解决这个问题的想法吗 这是我的服务 angular service Channel function var channel null return init function chann
  • 最佳实践 - 警告:方法缺少“等待”操作员警告

    是的 我知道还有其他问题涉及此警告的含义以及如何解决它 但是 我对异步编程的最佳实践有疑问 我有一个服务层 用于处理数据层和表示层之间的数据传输 该服务包含多个查询数据库并返回结果的方法 我一直在尝试尽可能使用异步编程 一个例子 publi
  • 如何合并两个可观察量并提前完成

    内置的行为Merge运算符完成时both来源已完成 我正在寻找这个运算符的一个变体 它产生一个可观察的结果 当any两个源可观察量的完成 例如 如果第一个可观察的成功完成并且later第二个可观察的结果有一个异常 我希望忽略这个异常 我想出
  • 使用 FullTrustProcessLauncher 类从 UWP 应用启动 powershell 脚本

    有没有办法从我的 UWP 应用程序启动 powershell 脚本 我读过我们必须使用 FullTrustProcessLauncher 类 但我不明白如何使用 实现它 你有什么主意吗 Docs https learn microsoft
  • Firestore 无效权限:request.auth.uid in

    我正在使用 Cloud Firestore 但似乎无法让 IN 运算符使用安全规则 我尝试过使用数组和映射 但都不起作用 当然 当我将其设置为allow read write 效果很好 我究竟做错了什么 Rules service clou
  • Android,RelativeLayout在同一RelativeLayout中更改ImageView时重新启动Marquee-TextView

    我还没有找到解决我的问题的方法 也许你可以在这里帮助我 我使用带有 ImageView 和 TextView 作为子项的relativelayout TextView 包含大文本 应从右向左滚动 但是每次当我向 ImageView 设置新图
  • 文件中出现错误(文件,“rt”):无法打开连接

    我正在运行以下代码 Create a list of all the files file list lt list files path R natural language processing class notes pattern
  • 将 void(无返回函数)映射到数组上

    标题是不言自明的 是否有任何映射方式 例如 addGestureRecognizer在一个数组上UIGestureRecognizers 我一直在摆弄各种变化 recognizers map MyWebOutlet addGestureRe
  • 寻找哈希函数 /Ordered Int/ 到 /Shuffled Int/

    我正在寻找可以将有序整数索引值更改为随机哈希索引的恒定时间算法 如果是可逆的就太好了 我需要每个索引的哈希键都是唯一的 我知道这可以通过在大文件中查找表来完成 IE 创建所有整数的有序集合 然后随机打乱它们并以随机顺序写入文件 然后您可以在
  • 三维数组

    在分类问题中 我有c数据类别 每个类别都有e该数据的示例 每个示例由长度为 的特征向量表示f 在 Matlab 中表示此结构的最佳方式是什么 我可以用一个c by e元胞数组 其中每个元素都是长度的一维数组f 但是 我想避免使用元胞数组 如
  • 如何在 Python 中初始化空列表字典?

    我尝试以编程方式创建列表字典 但无法单独寻址字典键 每当我创建列表字典并尝试附加到一个键时 所有这些都会更新 这是一个非常简单的测试用例 data data data fromkeys range 2 data 1 append hello