1. 程式人生 > >python數據類型之三

python數據類型之三

value 字符 RM 基本數據 default rem 循環 註意 集合

字典

字典的基本結構

#   字典, 鍵值對 dict類
# 字典的基本結構
# 字典的值可以是任何值
# 字典的鍵不能是列表,字典, 最好也不要用布爾值(可能會和1和0重復)
# 字典無序,
my_dict = {
    "k1": "v1",  # 鍵值對
    "k2": "v2",
    "k3": 12,
    "k4": [
        1, 2,
        [],
        (),
        {
            "kk1": 11,
            "kk2": 12,
        }
    ],
    (
1, 2, 3): "數字" } print(my_dict)


索引找到指定元素 提取v1, 11

v = my_dict["k1"]
v2 = my_dict[k4][4]["kk1"]
print(v, v2)
#   字典支持del刪除
del my_dict["k2"]


遍歷字典

#   默認遍歷key, 這裏顯示的是 所有的key
#   等價於 in my_dict.keys(), 同樣也有  in my_dict.values()
for item in my_dict:
    print(item)

for item in my_dict:
    
print(item, my_dict[item]) # 遍歷字典二 for key, value in my_dict.items(): print(key, value) dic = { "k1": v1, "k2": v2,

遍歷字典的常用函數 kyes(), values(), items(), update(),get()

# def update(self, E=None, **F)
#   更新字典, 有的 改變, 沒有的自動添加
dic.update({k2:1234, k10:10})
print
(dic) # 根據key獲取值,當key不存在時可以指定默認值,默認值不存在時(None) # def get(self, k, d=None) # my_dict.get(‘k1‘) keys(), values(), items()參考上面的遍歷字典

字典的其他函數

# def clear(self)
# def copy(self)

# @staticmethod  # known case  靜態方法, 可以直接用dict調用
# def fromkeys(*args, **kwargs)
#   根據序列,創建字典 以你個的參數作為鍵值對
v = dict.fromkeys([1,2,3], [4,5])
print(v)


# def setdefault(self, k, d=None)
#   設置值, 如果key不存在, 就添加,(‘k5‘:12) 存在就不變
dic.setdefault(k5, 12)
print(dic)

集合 set

集合的基本結構

            集合:可以包含多個元素,用逗號分割,
            集合的元素遵循三個原則:
             1:每個元素必須是不可變類型(可hash,可作為字典的key)
             2:沒有重復的元素
             3:無序

註意集合的目的是將不同的值存放到一起,不同的集合間用來做關系運算,無需糾結於集合中單個值
#   不同元素組成, 無序, 集合中必須是不可變類型,(int, str, 元組)
#優先掌握的操作:
#1、長度len
#2、成員運算in和not in

#3、|合集
#4、&交集
#5、-差集
#6、^對稱差集
#7、==
#8、父集:>,>= 
#9、子集:<,<=
s = {1, 2, 3, 4, 5}
print(s)
# set
s = set(123445)
print(s)
s = set([haha, heihi, heng])
print(s)

集合的基本操作

#   添加一個元素
# def add(self, *args, **kwargs)
s.add((123, heihi, ni))
print(s)

#   清空
# def clear(self, *args, **kwargs)
#   淺拷貝
# def copy(self, *args, **kwargs):

# pop隨機刪除, remove刪除指定的, remove如果刪除的元素不存在 就回報錯
# def pop(self, *args, **kwargs)
# s.pop()
# s.remove(‘123‘)
# def remove(self, *args, **kwargs)
#   刪除一個元素, 如果元素不存在 也不報錯
# def discard(self, *args, **kwargs)

集合的並交差運算

#   集合運算,並交差

p = [a, b, c, d]
l = [a, c, e]
p_s = set(p)
l_s = set(l)
#   求交集s1&s2
#   def intersection(self, *args, **kwargs)
print(p_s.intersection(l_s))
print(p_s & l_s)

#   求差集  def difference(self, *args, **kwargs)
#   p_s 中有而 l_s沒有的
print(p_s.difference(l_s))
print(p_s - l_s)

#   求並集
print(p_s.union(l_s))
print(p_s | l_s)

#   求交叉補集
print(p_s.symmetric_difference(l_s))
print(p_s ^ l_s)

#   補充
# p_s.difference_update(l_s)
# 等價於
# p_s = p_s - l_s
#   判斷子集, 也有>= isup
print(p_s.issubset(l_s))
print(p_s <= l_s)

利用集合去重

#   簡單去重操作
my_list = [1, 2, 3, a, b,  1, 2, a]
# m_s = set(my_list)
my_list = list(set(my_list))

基本數據類型常用方法總結

# 常用數據類型的方法
# int 常用 int()
# 字符串
# find/replace/join/strip/startwith/split/upper/lower/format(in)
# 列表
# append/extend/insert, 索引,切片,循環(in)
# 元組
# 忽略, 但是要知道 索引,切片,循環, 一級元素 不可以修改(in)
# 字典
# get/update/keys/values/items, 循環,索引, (in)
# 判斷是否存在,dic可以是字典,列表,字符串,元組
# v = ‘aa‘in dic

# 布爾值
# bool()
# 其中為空的有None, ‘‘, (),[],{},0 ==>False

python數據類型之三