python - python中list,tuple,...对象的惊人行为
问题描述
考虑以下 3 个简短的片段:
片段1:
nation = ['Roman', 'Egypt', 'Greek', 'Chinese', 'Islamic', 'Mayan', 'Persian', 'Mongol']
golden_age = ['27BC-1453AD', '3150BC-30BC', '800BC-600AD', '221BC-1912AD', '750AD-1257AD', '2000BC-1540AD', '550BC-651AD', '1206AD-1368AD']
a = zip(nation, golden_age)
print(a)
片段 2:
b = list(a)
print('b',b)
片段 3:
c = tuple(a)
print('c',c)
假设首先我运行片段 1。然后是第二个和第三个。令人惊讶的是第三个片段打印c()
(似乎对象a
在我将它传递给片段 2 中的列表构造函数后消失了。所以当将它转换为元组时,结果为空!)
现在将运行顺序更改为 1 -> 3 -> 2。这一次,第二个片段打印空列表!我看起来像元组构造函数已经吃掉了 object a
。
为什么元组应该影响它的输入参数?(也适用于列表,也许还有其他人!)
解决方案
推荐阅读
- html - xtable() 在 HTML 中打印时将 hms 输出更改为数字
- c++ - 使用 memset 清除非平凡类型的对象时出错
- asp.net-core - 将图标添加到 Ant Designs Blazor 的标题属性(DescriptionsItem)
- amazon-web-services - cloudformation 堆栈部署完成后返回 FilesystemID
- oracle-apex - 使用 APEX 发出 GET 请求
- newline - 使用 sqlplus 如何将数据假脱机到列包含换行符的 csv 中
- sql - 从 2/3 列链接来自 sql 的数据
- javascript - 在一些链接中找到http协议并将其转换为https
- c# - 获取除少数之外的所有父母及其子女的材料
- c - 带有链接 lst 的结构