python列表之元组

元组

  1. 列表非常适合用于存储程序在运行期间可能不断发生变化的数据集,所以列表是可以被修改的,可以被修改的优点在处理网站的用户列表或游戏中的角色列表至关重要,但有的时候也需要创建一系列不可修改的元素,所以python就引申出了----元组,这一概念。
    python中把不能修改的值称之为不可变的,而不可变的列表称之为元组。

  2. 定义元组
    元组看起来犹如列表,但使用圆括号()而不是方括号[ ] 来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。下面举个例子来直观的感受一下
    例如,有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的:

    dimensions.py	
    
		1 dimensions = (200, 50)   #定义元组,使用的是圆括号
  		2 print(dimensions[0])        #接下来打印元组中的元素
  		3 print(dimensions[1])

看看执行结果:

	[email protected]:~/python$ python dimensions.py 
	200
	50

发现使用的语法与访问列表元素时使用的语法相同。
下面我们做个实验,尝试修改元组dimensions中的一个元素,看看结果如何:

 	 1 dimensions = (200, 50)
  	  2 dimensions[0] = 300
  	  3 print(dimensions[0])
  	  4 print(dimensions[1])

执行结果呢:

	[email protected]:~/python$ python dimensions.py 
	Traceback (most recent call last):
	File "dimensions.py", line 2, in <module>
		dimensions[0] = 300
	**TypeError: 'tuple' object does not support item assignment**

因为python中如果试图修改元组的操作是被禁止的,因此python指出不能给元组的元素赋值,所以上面的执行结果就提示了错误信息,这就符合我们的预期了。

  1. 遍历元组中的所有值
    因为元组就是不可修改的列表,所以也可以像列表一样使用for循环来遍历元组中的所有值,动手试试:

    dimensions.py
    
     1 dimensions = (200, 50)
  	 2 for value in dimensions:
  	 3     print(value)

看看执行结果:

	[email protected]:~/python$ python dimensions.py 
	200
	50

嗯,结果和访问列表是一样的。

  1. 修改元组变量
    元组的元素虽然不可以修改,但可以给存储元组的变量赋值。所以,如果要修改前述矩形的尺寸,可重新定义整个元组,动手写写吧,毕竟实践是检验真理的唯一标准-----鲁迅
 1 dimensions = (200, 50)
  2 print("original value: ")
  3 for value in dimensions:
  4     print(value)
  5 
  6 
  7 dimensions = (500, 100)
  8 print("new value: ")
  9 for value in dimensions:
 10    print(value)

看看检验结果:

[email protected]:~/python$ python dimensions.py 
original value: 
200
50
new value: 
500
100

首先呢,定义了一个元组,并将其存储的尺寸打印出来,接下来将一个新元组存储到变量存储到变量dimensions中,然后打印新的尺寸,执行结果没有报告任何错误,因为给元组变量赋值是合法的。
相比于列表,元组是更简单的数据管理结构,如果需要存储一组值在程序的整个生命周期内都不变,可使用元组。
说到数据结构,不知道大家对这四个词的理解有什么高深的见解吗?有的时候啊,人就是在积累的见解达到一定程度以后,突然之间看到一句话,或者感悟到了什么,就会对某些原来自以为已经了解的词语,又有了更新更深的理解,并且是那种发自内心的醍醐灌顶,数据------结构,基础是数据,提升是结构,理解了本质后,再去学习和使用就会更加的深刻…

发布了53 篇原创文章 · 获赞 16 · 访问量 2213

猜你喜欢

转载自blog.csdn.net/m0_37757533/article/details/105157912
今日推荐