Python中声明只包含一个元素的元组数据方法

yipeiwu_com6年前Python基础

调试程序的时候,就吃过这个亏,不知道为何Python使用括号做元组声明边界符,估计是找不到合适的符号了。中括号用来声明列表,花括号用来声明字典,元组号只能用括号来声明了。有其他语言编程经历的朋友都清楚括号在其它语言里都是表示优先级,而Python也可以用来表示优先级,所以也就引发了以下白痴的问题。

复制代码 代码如下:

# encoding=UTF-8
 
obj = ('tuple')
 
print obj
print type(obj)
print len(obj)

执行结果
复制代码 代码如下:

tuple
<type 'str'>
5

我本来是想声明只有一个元素的元组,而Python估计以为你只是声明一个字符串所以结果以obj变量就变成元组了。这个错误非常隐形,不好调试。
解决方法:末尾加一个逗号
复制代码 代码如下:

# encoding=UTF-8
 
obj = ('tuple',)
 
print obj
print type(obj)
print len(obj)

执行结果
复制代码 代码如下:

('tuple',)
<type 'tuple'>
1

使用tuple关键字:将会得到意外的结果
复制代码 代码如下:

# encoding=UTF-8
 
obj = tuple('tuple')
 
print obj
print type(obj)
print len(obj)

执行结果
复制代码 代码如下:

('t', 'u', 'p', 'l', 'e')
<type 'tuple'>
5

相关文章

Flask框架的学习指南之制作简单blog系统

Flask框架的学习指南之制作简单blog系统

之前写了一篇flask开发环境搭建,今天继续,进行一个实战小项目-blog系统。 blog系统很简单,只有一个页面,然后麻雀虽小五脏俱全。这里目的不是为了做项目而做项目,这篇文章本意是通...

tensorflow TFRecords文件的生成和读取的方法

TensorFlow提供了TFRecords的格式来统一存储数据,理论上,TFRecords可以存储任何形式的数据。 TFRecords文件中的数据都是通过tf.train.Examp...

深入理解Python中变量赋值的问题

前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的。 Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值...

视觉直观感受若干常用排序算法

视觉直观感受若干常用排序算法

直观感受几种常用排序算法,具体内容如下 1 快速排序 介绍:   快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下...

VTK与Python实现机械臂三维模型可视化详解

VTK与Python实现机械臂三维模型可视化详解

三维可视化系统的建立依赖于三维图形平台, 如 OpenGL、VTK、OGRE、OSG等, 传统的方法多采用OpenGL进行底层编程,即对其特有的函数进行定量操作, 需要开发人员熟悉相关函...