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

yipeiwu_com5年前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

相关文章

Selenium定位元素操作示例

本文实例讲述了Selenium定位元素操作。分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在...

matplotlib实现显示伪彩色图像及色度条

matplotlib实现显示伪彩色图像及色度条

灰度图显示为伪彩色图 法一 import matplotlib.pyplot as plt img = plt.imread('C:/Users/leex/Desktop/lena...

OpenCV-Python实现轮廓检测实例分析

OpenCV-Python实现轮廓检测实例分析

相比C++而言,Python适合做原型。本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处。这篇文章介绍在Python中使用Open...

python基础知识小结之集合

集合 特点:集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键,与列表和元组不同,集合无法通过数字进行索引。此外,集合中的元素不能重复。  定义 set() -...

Win10+GPU版Pytorch1.1安装的安装步骤

Win10+GPU版Pytorch1.1安装的安装步骤

安装cuda 更新nvidia驱动 打开GeForce Game Ready Driver或在GeForce Experience中下载符合自己gpu的程序。 选择cuda 打开nvi...