1. 程式人生 > >2018.12.9——元組、字典

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)