1. 程式人生 > >day5 元組、列表、字典和集合

day5 元組、列表、字典和集合

排列 auth {} 裏的 快速 log tde 格式 add

列表是用來存放多個值
[]內用逗號分隔,列表內元素屋類型限制
但凡能用for取出的一個個值的,就能把它放入list列表

補充for循環
range()和切片用法相同
取頭不取尾,步長
range用來打印索引和索引對應的值
enumerate(列表/字符串)
既要索引又要值使用enumerate()更方便

排序
.sort() 正序排列
.reverse() 倒序排列
.sort(reverse = Ture) 倒序排列

列表比較
只能同類型直接比較大小,對有索引的值的比較,是按照位置一一對應的


.extend(列表)添加多個元素
.append()添加一個元素,參數放列表的話,會被當成一個元素,添加到列表裏


.remove(元素)刪除返回的是None
.pop()不加參數默認刪除末尾
.pop(索引)刪除索引對應的值
.pop能把值彈出來(取走一個值)


列表[‘元素‘] = 任意值


.index(‘元素‘,起始位置,結束位置)查找元素的索引值
.count(‘元素‘)查找列表中對應元素個數

字典
以k:v的形式存多個值
存取都快,每個k對應一個V
{}內以逗號分隔元素,其中格式為k:v
其中key必須為不可變類型,value可以是任意類型
字典沒有索引,根據key取值
key不能重復
成員運算按照key


字典.keys()
字典.values()
字典.items()
.get(元素) 返回對應的value,找不到返回None


.updata(字典) 對新字典來說,更新指,新有老無則添加,新有老有則覆蓋(文件合並)
.fromkey(列表,None) 快速產生一個模板字典


字典[key] = 任意值
.setdefault(列表)字典中有KEY,則不修改,返回原key對應的原值,沒有對應的KEY,則添加,返回添加的KEY對應的VALUE


.pop(元素,None) 找不到元素,返回None
.popitem() 隨機彈出一個鍵值對

集合
set()
在{}內用逗號分隔開一個個元素
註意的問題
1.集合內沒有重復的元素
2.集合內的元素必須是不可變類型

用途
1.關系運算
2.去重

交集$
並集 |
差集 -
交叉補集 ^


.add() 一次加一個值
.updata() 一次加多個值


.discard() 刪除的元素不存在時,不報錯
.remove() 刪除的元素不存在時,報錯查
s1={1,‘a‘,‘b‘,‘c‘,‘d‘}
for item in s1:
    print(item)

去重
s1={1,‘a‘,‘b‘,‘c‘,‘d‘}
l_new=[]
s=set()
for item in l:
  if item not in s:
    s.add(item)
    l_new.append(item)

元組
tuple()
元組是“不可變的列表”但他的本質不是列表
在多個值只有讀的需求沒有改的需求
在元素數相同時,元組更節省空間
元組的值不能被更改
他僅有index()和count()
其他用法與列表一樣

# 步長不夠的情況怎麽辦 msg=[1,2,3,4,5,6,7] print(msg[1:5:2]) #[2,3,4,5] print(msg[1:4:2]) #[2,3,4] 步長為2,列表裏的值只有三位也能取到

remove是按照元素去刪的

remove能刪多個元素麽?

不能,remove一次只能刪除一個元素

isdigit只能判斷str類型的數字,且小數不能判斷,int類型沒有isdigit方法

有序 按數字大小或者大小寫字母大小排列麽

無序 隨機排列

可以被索引的都是有序的

元素

day5 元組、列表、字典和集合