2018.12.9——元组、字典

一、元组与其他数据结构的相互转换:

1.字符串转换为元组:

v='dfsfdsff'
x=tuple(v)
print(x)

#结果:('d', 'f', 's', 'f', 'd', 's', 'f', 'f')——类似于for循环

2.列表转换为元组:

v=[123,'dfd',5332]
x=tuple(v)
print(x)
#结果输出:(123, 'dfd', 5332)

补充:join用法

连接的不可以有数字!

v1=(123,'dfd',5332)
v2=(123,5332)
v3=('sdfs','dasd')
# x1="_".join(v1)
 x2="-".join(v2)
# x3="-".join(v3)
print(x2)

#输出结果:报错!!!!
v3=('sdfs','dasd')
x3="-".join(v3)
print(x3)

#输出结果:sdfs-dasd

 3.补充:extend的用法

v=['sfsfs','adasxds']
v.extend('sfsfs')
print(v)

#输出结果:
#['sfsfs', 'adasxds', 's', 'f', 's', 'f', 's']
v=['sfsfs','adasxds']
v.extend(['fsfs',123])
print(v)

#输出结果:
#['sfsfs', 'adasxds', 'fsfs', 123]
v=['sfsfs','adasxds']
v.extend((111,222,'fsggssfssss',))
print(v)

#输出结果:
#['sfsfs', 'adasxds', 111, 222, 'fsggssfssss']

上述可知:元组,列表是可迭代对象。

小练习:对于v=('sfsrf',222,[(33,22)],'sdsfdf')。

(1)试获取:v=('sfsrf',222,[(33,22)],'sdsfdf')中的33

答案:

v=('sfsrf',222,[(33,22)],'sdsfdf')
x=v[2][0][0]
print(x)

(2)尝试对于它将[(33,22)]修改为[(33,22,55)]

思路:元组 的一级元素不可修改,即'sfsrf','222','sdsfdf'均不可修改,而[(33,22)]是列表,因为列表是可以对其中的元素进行修改的。也就是说。可以将(33,22)进行修改。

因此:

v=('sfsrf',222,[(33,22)],'sdsfdf')
x=v[2][0]=267
print(v)

#输出结果:
#('sfsrf', 222, [267], 'sdsfdf')
#而如果是v[2]=267则会报错!

 二、字典

例:

 1 info={
 2     'k1':18,
 3     'k2':True,
 4     'k3':[
 5         11,
 6         22,
 7         33,
 8         {
 9             'kk1':'vv1',
10             'kk2':'vv2',
11             'kk3':(11,22)
12         }
13     ],
14     'k4':(11,22,33,44)
15 }
16 print(info)
17 
18 #输出结果:{'k4': (11, 22, 33, 44), 'k3': [11, 22, 33, {'kk3': (11, 22), 'kk2': 'vv2', 'kk1': 'vv1'}], 'k2': True, 'k1': 18}——顺序是反的!!
19 #  v(键值对的“值”)可以是任意数据类型!
 v(键值对的“值”)可以是任意数据类型!
info={
    1:'fsdfs',
    'sfg':'dfd',
    # [123,222]:'fg',
    True:'DFG',
    (123,456):'dafds'
  
}

print(info)

#输出结果:{(123, 456): 'dafds', 1: 'DFG', 'sfg': 'dfd'}而且再次单击播放按钮还会变换顺序,所以——字典的顺序是不定的!!!!!
 
 k(键值对的“键”)可以是非列表,字典的任意数据类型!
注意:上面的例子里面,因为TURE=1,而字典里面不允许有重复的值,所以TURE没有显示出来!

例:对于下列字典:
 1 info={
 2     'k1':18,
 3     'k2':True,
 4     'k3':[
 5         11,
 6         22,
 7         33,
 8         {
 9             'kk1':'vv1',
10             'kk2':'vv2',
11             'kk3':(11,22)
12         }
13     ],
14     'k4':(11,22,33,44)
15 }
(1)找到其中标绿的11
答案:
v = info['k3'][3]['kk3'][0]
(2)删掉标橙色的内容
答案:del info['k3'][3]['kk1']在删除字典的键值对的时候,可以用k代表v

(3)将上述的字典的所有键鼠对一一列出:
答案:
法一:
for item in info.keys():
# print(item)
print(item,info[item])
法二:
for k,v in info.items():
print(k,v)



 
原文地址:https://www.cnblogs.com/lijialun/p/10090491.html