python - 显示列表元素,就好像它们是输入的一样
问题描述
这是代码:
test = ['26', 1, '050120', '084922', u'43034775', u'RRR', '', None]
print(', '.join(test))
它说:
类型错误:序列项 1:预期的 str 实例,找到 int
有没有不看元素类型就可以加入的方法?
', '.join(str(v) for v in test)
不是一个好的解决方案。它打印:
26, 1, 050120, 084900, 21747, 1200.0, X, X, 18034775, 5TDDK3DC4BS029227, , None
我想保留元素类型并按原样打印:
'26', 1, '050120', '084922', u'43034775', u'RRR', '', None
解决方案
你可以使用repr
内置的。
print(', '.join(map(repr, test)))
这会产生所需的输出,因为
对于许多类型,此函数尝试返回一个字符串,该字符串在传递给 eval() 时会产生具有相同值的对象
例子:
>>> str(1)
'1'
>>> str('1')
'1'
>>> repr(1)
'1'
>>> repr('1')
"'1'"
推荐阅读
- ios - 我怎样才能提高它的性能......为什么没有 LazyZStack 这样的东西?
- firebase - 如何在 Firestore 集合中检索文档的 documentId,以便在返回对象流的 getter 中使用它
- c++ - 单例和新运算符 - 线程安全
- c - 如何在C中清除控制台而不闪烁
- python - 使用 python 从 Cassandra 数据库中检索数据
- database - 我可以为 MongoDB 索引配置特定路径吗?
- html - 如何对齐网格系统html/css?
- docker - 无法到达 docker 容器 - 端口未绑定
- html - 响应式列,防止孩子在折叠时在列之间移动
- javascript - 在 mapbox 中读取 GPX 文件或第三方 URL 以添加行