Python全棧工程師(元組、字典)

 

 ParisGabriel
 
                感謝 你們的支持  大家的閱讀評價就是我最好的更新動力  我會堅持吧排版作的愈來愈好 
 
                                
 
                     



                     天天堅持 一天一篇 點個訂閱吧  灰常感謝    當個死粉也闊以python

 

                              Python人工智能從入門到精通算法

 

 

函數:
tyup(x)           用來返回x對應的數據類型數組

range(x)        返回可迭代對象
sublime編輯器:
  中文空格查找方法 空格中間沒有小點
  行首小黑點 語法不規範 大黑點語法錯誤 中文空格也會出錯
元組 tuple:
  元組是不可變的序列,同list同樣,元組能夠存聽任意數據類型的容器
元組的表示方法:
  用小括號()括起來,單個元素括起來後面加 「,」逗號區分單個對象仍是元組
  元組的小括號能夠省略 但元素低於2個 「,」 不能省略
元組的構造函數:
  tuple() 生成一個空元組,等同於()
  tuple(iterable) 用可迭代對象生成一個元組
元組的運算:
  + += * *=
  < > <= >= == !=
  in , not in
  索引[ ], 切片[ : ] [ : : ]
  + 拼接元組
  * 生成重複元組
元祖的比較:
  規則與列表規則徹底相同
  in , not in
  規則與列表規則徹底相同
索引和切片:
  索引取值和切片取值的規則與列表相同
  元組不支持索引賦值和切片賦值(由於元組是不可變的序列)
元組的方法:
  T.index(v[, begin[, end]])   返回對應圓的索引下表
  T.count(x)          返回對應元素個數
序列相關函數: 
len(x)、max(x)、min(x)、sum(x)、any(x)、all(x)
str(x) 建立字符串
構造函數app

(構造函數必定是他的類型名 返回對應類型)編輯器

  list(inerable)       建立列表
  tuple(inerable)   建立元組
  reversed(x)         返回反向順序的可迭代對象
  sorted(inerable,key = None,reverse = false)   返回已排列列表
    inerable:可迭代對象 (key = None,reverse = false:後面將)
例如:函數

t = (4, 5, 8, 3, 2, 1)
L = [x for x in reversed(t)]
print(L)

容器小結:
  字符串str    # 不可變序列, 只能存字符
  列表 list      # 可變序列,可存任意數據
  元組 tuple   #不可變序列,能夠存任意數據
字典 dict:
  1.字典是一種可變容器,能夠儲存任意類型數據
  2.字典中的每一個數據都是用「鍵」(key)進行索引
  ,而不像序列能夠用整數下標來進行索引
  3.字典中的數據沒有前後關係,字典的儲存是無序的
  4.字典的數據以鍵(key)- 值(value)對形式進行映射儲存
  5.字典的鍵不能重複,只能用不可變類型做爲字典的鍵
字典的字面值的表示方法
  字典的表示方式是以{ }括起來的,以冒號開頭「:」
  分隔鍵-值對,各鍵-值對之間用逗號分開
建立字典:
  d = { } #空字典
  d = { 「Nemo」:「yang」,「age」: 35} #非空字典
  鍵:「Nemo」值:「yang」(一個鍵值對)
  鍵(只能用不可變類型能夠任意類型
字符串str 列表 list 元組 tuple 字典 dict 都是能夠任意包含關係的人工智能

字典的構造函數dict:
  dict() 生成一個字的字典 等同於{ }
  dict(iterable) 用可迭代對象初始化一個字典
  dict(** keargs) 用關鍵字傳參形式建立字典
關鍵字傳參:(dict(name = 「tarena」,age = 15))
  索引:d [key ]
  字典的key:
不可變數據類型:spa

bool,int,float,complex,str,tuple,frozeset,bytes
可變數據類型有四種:3d

list 列表
dict 字典
set 集合
bytearray 字節數組對象

字典的基本操做:
  鍵索引 用 [ ] 運算符獲取字典內「鍵」對應的值

也能夠修改  字典[ 鍵 ] = 值

  若是鍵不存在時建立鍵,並綁定對應的值
  當存在時修改鍵綁定的值
  del 字典 [ 鍵 ] (刪除元素)
字典的成員資格判斷 in 運算符:

  能夠用 in 運算符判斷一個鍵是否存在於字典中,若是存在則返回true
  不然返回false
  not in 與 in 結果相反
例如:

d = {"name": "Gabriel", "age": 20}
if "name" in d:
    print("name 在字典中 ")

 

print(15 in d) # false  

只判斷鍵 不判斷值

字典的迭代訪問:
  字典是可迭代對象,字典只能對鍵進行迭代訪問
例如:
  d = {"name":"tarena", age: 15}
  for x in d:
    print(x, d[ x ])
內建函數:(內建:表明系統內直接有的函數
  len(d) 返回的是鍵值對個數
  max(d) 返回的是鍵最大值
  min(d) 返回的是鍵最小值
  sum(d) 返回的是鍵得和
  any(d) 一個鍵爲true則爲true
  all(d)全部鍵爲true 則爲true
字典的方法:
  函數             說明
  D表明字典對象
  D.clear()           清空字典
  D.pop(key)            移除鍵,同時返回此鍵所對應的值
  D.copy()           返回字典D的副本,只複製一層(淺拷貝)
  D.update(D2)         將字典 D2 (合併)到D中,若是鍵相同,則此鍵的值取D2的值做爲新值
  D.get(key, default)      返回鍵key所對應的值,若是沒有此鍵,則返回default
  D.keys()            返回可迭代的 dict_keys 集合對象(返回鍵)
  D.values()         返回可迭代的 dict_values 值對象(返回值)
  D.items()           返回可迭代的 dict_items 對象(返回鍵值對)
字典推導式:
  是用可迭代對象建立字典的表達式
語法:
  {鍵表達式:值表達式 for 變量 in 可迭代對象 if 真值表達式}
  if子句能夠省略
  d = { x:x ** 2 for x in range(10)}
字典VS列表:
  1.可變對象
  2.索引方式不一樣,列表用整數(下標)索引 ,字典用鍵(key)索引
  3.字典的插入,刪除,修改數據的速度可能會快於列表
  4.列表的存儲是有序的(內存中通常用排列算法),字典的儲蓄是無序的(內存中通常用散列算法插入數據)

 

 練習:

1.已知有兩個等長的列表 list1 和 list2
  以list1中的元素爲鍵,以list2中的元素爲值,生成相應的字典
  list1 = [1001, 1002, 1003, 1004]      list2 = ['Tom', 'Jerry', 'Spike', 'Tyke']

答案:

list1 = [1001, 1002, 1003, 1004]
list2 = ['Tom', 'Jerry', 'Spike', 'Tyke']
d = {list1[x]: list2[x] for x in range(len(list1))}
print(d)

  

 

2.

輸入任意個學生的姓名,年齡,成績,每一個學生的信息存入字典中,而後放入至列表中,每一個學生的信息須要手動輸入
當輸入姓名爲空時結束輸入:
如:
請輸入姓名: xiaozhang
請輸入年齡: 20
請輸入成績: 100
請輸入姓名: xiaoli
請輸入年齡: 18
請輸入成績: 98
請輸入姓名: <回車> 結束輸入
要求內部存儲格式以下:
[{'name':'xiaozhang', 'age':20, 'score':100},
{'name':'xiaoli', 'age':18, 'score':98}]
打印全部學生的信息以下:
+---------------+----------+----------+
|     name      |   age    |   score |
+---------------+----------+----------+
|   xiaozhang |    20    |      100 |
|       xiaoli     |     18   |        98 |
+---------------+----------+----------+

答案:

L = []
while True:
    n = input("請輸入姓名:")
    if n == '':
        break
    a = int(input("請輸入年齡:"))
    s = int(input("請輸入成績:"))
    d = {}
    d['name'] = n
    d['age'] = a
    d['score'] = s
    L.append(d)
# print(L)
print("+---------------+----------+----------+")
print("|     name      |   age    |   score  |")
print("+---------------+----------+----------+")
for d in L:
    n = d['name'].center(15)
    a = str(d['age'])
    ac = a.center(10)
    s = str(d['score'])
    sc = s.center(10)
    line = "|%s|%s|%s|" % (n, ac, sc)
    print(line)
print("+---------------+----------+----------+")

            

相關文章
相關標籤/搜索