python第五课 元组

eval()将元组、字典、列表类型的字符串华为元组字典列表可以将list,tuple,dict和string相互转化
<1>将字符串类型元组转化成元组类型

r='23,5,6'
r1=eval(r)
print(r1)
print(type(r1))

执行命令得

(23,5,6)
<class 'tuple'>

确认元组里的数据类型

 r='23,5,6'
 r1=eval(r)
 print(r1[0])
 print(type(r1[0]))

执行命令得

23
<class 'int'>

<2>将字符串列表类型转化成列表类型

r='[23,5,6]'
r1=eval(r)
print(r1)

执行命令得

[23,5,6]
<class 'list'>

<3>将字符串字典类型转化成字典类型

r="{'a':1,'b':2}"
r1=eval(r)
print(r1)
print(type(r1))

执行命令得

{'a':1,'b':2}
<class 'dict'>

元组

Python的元组与列表类似,不同之处在于元组的元素不能修改.

一、元组的创建

元组使用小括号,列表使用方括号

元组创建很简单,只需要在括号中添加元素(不分数据类型),并使用逗号隔开即可

tup=();

tup=()
print(type(tup))

执行命令得

<class 'tuple'>

tup=(50,)元组中只包含一个元素时,需要在元素后添加逗号,否则会被当作运算符使用

二、元组里增、删、改均不可以

例:

num=(1,2,3)
num.__add__('4')或者num[1]=3  #报错  元素不能修改
print(num)

元组中的元素是不允许删除的,但是我们可以使用del语句来删除整个元组

tup = ('Google', 1997, 2000)
print (tup)
del tup;
print ("删除后的元组 tup : ")
print (tup)

执行命令得

删除后的元组 tup : 
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print (tup)
NameError: name 'tup' is not defined

三、关于可变元素与不可变元素
可变元素

t=(1,2,[11,22])
t[2][1]=33
print(t)#由于元组中嵌套的列表的对象id空间和元组本身不同 所以可以改变列表里的元素

执行命令得

(1, 2, [11, 33])

不可变元素(数值 元组)

a=1
b=1
print(id(a))
print(id(b))#这时a与b指向同一个对象空间 id相同
a=2
print(id(a))#a的值改变但不会影响对象1所在的空间而是新创建了一个id空间2

执行命令得

1502570624
1502570624
1502570640

四、逐个赋值一一对应

t=(1,2,'pop')
a,b,c=t
print(a,b,c)#如果t中的元素超过或者小于3个将不能逐个赋值 且报错

执行命令得

1 2 pop

五、元组 运算符
与字符串一样,元祖之间可以使用+号和*号进行运算.这就意味着他们可以组合和复制,运算后生成一个新的元组
六、元素的索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取打印中的一段元素

tu=(1,2,3,4,5)
tu1=(tu[:])
print(tu1)#正向获取
tu1=(tu[::-1])
print(tu1)#反向获取

执行命令得


(1, 2, 3, 4, 5)
(5, 4, 3, 2, 1)

猜你喜欢

转载自blog.csdn.net/weixin_42067855/article/details/80250016