1. 程式人生 > 其它 >資料型別的內建方法下

資料型別的內建方法下

資料型別的內建方法

  接上上一篇的哈

列表下半部分

  ·1.排序.sort() 預設升序 (reverse=True)引數指定 降序

l1 = [44, 22, 11, 33, 99, 77, 88, 66]
l1.sort()
l1.sort(reverse = True)
print(l1)

  2.順序顛倒 .reverse()

l1 = [44, 22, 11, 33, 99, 77, 88, 66]
l1.reverse()  # 順序顛倒
print(l1)

  3.切片

l1 = [44, 22, 11, 33, 99, 77, 88, 66]
print
(l1[1:5]) print(l1[::-1]) # 冒號左右兩邊不寫數字預設全都要 print(l1[:5]) # [44, 22, 11, 33, 99] 左邊不寫預設從頭開始 print(l1[1:]) # [22, 11, 33, 99, 77, 88, 66] 右邊不寫預設到尾部

  4.列表比較:列表比較運算採用相同索引元素比較 只要有一個比出了結果就直接得出結論

ll1 = [999, 111]
ll2 = [111, 222, 333, 444, 555, 666, 777, 888]
print(ll1 > ll2)  # True

  引申出字串比較:字串比較大小也是按照索引位置內部轉成ASCII對應的數字比較

s1 = 'hello world'
s2 = 'abc'
print(s1 > s2)   # Ture

字典

  1.按k取值 k不存在會直接報錯

dic = {
        'name': 'jason',
        'age': 18,
        'hobbies': ['play game', 'basketball']
        } 
print(dic['name'])
print(dic['pwd'])

  2.按k修改值 新增鍵值對(使用頻率最高)

dic = {
        'name': 'jason',
        '
age': 18, 'hobbies': ['play game', 'basketball'] } dic['name'] = 'jasonNB' # 鍵存在為修改值 print(dic) dic['hobbies'].append('read') print(dic) dic['pwd'] = 123 # 鍵不存在為新增鍵值對 print(dic)

  3.統計字典內部鍵值對的個數 len()

dic = {
        'name': 'jason',
        'age': 18,
        'hobbies': ['play game', 'basketball']
        }
print(len(dic))  # 3    

  4.成員運算 預設只暴露k

dic = {
        'name': 'jason',
        'age': 18,
        'hobbies': ['play game', 'basketball']
        }
print('jason' in dic)
print('name' in dic)

  5.刪除元素del 字典變數名['變數值的描述k'] .pop().popitem()


dic = {
    'name': 'jason',
    'age': 18,
    'hobbies': ['play game', 'basketball']
    }

# 方式1
del dic['name']
print(dic)
# 方式2  指定k彈出鍵值對 給出v
print(dic.pop('age'))
print(dic)
# 方式3  彈出鍵值對 組織成元組的形式 第一個元素是k第二個元素是v(瞭解)
print(dic.popitem())
print(dic)

  6.獲取v值

dic = {
        'name': 'jason',
        'age': 18,
        'hobbies': ['play game', 'basketball']
        }
print(dic['name'])  # jason  鍵不存在直接報錯  按k取值不太推薦使用該方式
print(dic['xxx'])  #  鍵不存在直接報錯  按k取值不太推薦使用該方式
print(dic.get('name'))  # jason
print(dic.get('xxx'))  # None  鍵不存在 不會報錯返回None
print(dic.get('name', '哈哈哈'))  # 第二個引數 可以在k不存在的時候自定義返回資訊
print(dic.get('xxx', '哈哈哈'))  # 第二個引數 可以在k不存在的時候自定義返回資訊

  7.keys() values() items() 在python2中是列表 在python3中是迭代器(老母豬)

print(dic.keys())  # dict_keys(['name', 'age', 'hobbies'])  獲取字典所有的鍵 看成列表即可
print(dic.values())  # dict_values(['jason', 18, ['play game', 'basketball']])  獲取字典所有的值 看成列表即可
print(dic.items())  # dict_items([('name', 'jason'), ('age', 18), ('hobbies', ['play game', 'basketball'])])
# 獲取字典裡面所有的鍵值對 組織成列表套元組的形式 元組內有兩個元素 第一個是k第二個是v

  瞭解

    1.更新字典 鍵存在則修改 不存在則建立.update()

dic = {
        'name': 'jason',
        'age': 18,
        'hobbies': ['play game', 'basketball']
        }
dic.update({'name': 'jasonNB', 'pwd': 123})
print(dic)

    2.初始化字典.fromkeys()

print(dict.fromkeys(['k1', 'k2', 'k3'], []))
'''筆試題'''
res = dict.fromkeys(['k1', 'k2', 'k3'], [])
res['k1'].append(111)
res['k2'].append(222)
res['k3'].append(333)

res['k1'] = [111,222,333]
res['k1'].append(444)
print(res)

    3.當鍵存在的情況下 不修改而是獲取該鍵對應的值

print(dic.setdefault('name', 'jasonNB'))
print(dic)
# 當鍵不存在的情況下 新增一組鍵值對 並且該方法的結果是新增的值
print(dic.setdefault('pwd', '123'))
print(dic)

元組

  1.元組第一道筆試題

t1 = (111)  # 整型
t2 = (11.11)  # 浮點型
t3 = ('hello')  # 字串
'''元組哪怕內部只有一個元素 也需要加上逗號'''
print(type((111,)))
'''容器型別:內部可以存放多個值的資料型別都可以稱之為容器型別
    建議:所有的容器型別在儲存資料的時候 如果內部只有一個元素 
        那麼也推薦你加上逗號
'''

  2.索引取值

t = (111, 222, 333, 444, 555)
print(t[2])
print(t[-1])

  3.切片操作

t = (111, 222, 333, 444, 555)
print(t[1:5])
print(t[1:])
print(t[:])

  4.步長

t = (111, 222, 333, 444, 555)
print(t[1:5:2])

  5.統計元組內元素的個數

t = (111, 222, 333, 444, 555)
print(len(t))  # 5

  6.for迴圈

t = (111, 222, 333, 444, 555)
for i in t:
    print(i)

  7.計數.count()

t = (111, 222, 333, 444, 555)
print(t.count(111))  # 1

  8.'''筆試題'''

t1 = (111, 222, [11, 22, 33])
t1[2].append(44)
print(t1)

集合

  1.定義空集合需要使用關鍵字set()

s1 = set()

  2.型別轉換 能夠支援for迴圈的資料型別都可以轉成集合(元素要是不可變型別)
  '''集合內元素是無序的'''

  3.去重

s1 = {1, 2, 2, 2, 3, 4, 3, 4, 3, 1, 2, 3, 2, 1, 2, 3, 2, 1, 2, 3}
print(s1)  # {1, 2, 3, 4}
name_list = ['kevin', 'jason', 'jason', 'jason', 'kevin', 'kevin']
# 1.先將列表轉換成集合
s1 = set(name_list)
# 2.再將去重之後的集合轉換成列表
l1 = list(s1)
print(l1)

  4."""課堂練習題"""

ll = [33, 22, 11, 22, 11, 44, 33, 22, 55, 66, 77, 77, 66, 55, 44]
# 基本要求:去重即可
s1 = set(ll)
ll1 = list(s1)
print(ll1)

# 拔高要求:去重並保留原來的順序
# 1.先定義一個新列表
new_list = []
# 2.for迴圈ll列表
for i in ll:
   # 3.判斷當前元素是否在新列表中
   if i not in new_list:
       # 3.1 如果不在 則新增到新列表
       new_list.append(i)
# 3.2 如果在 則不管
print(new_list)

  5.關係運算

    """兩個群體之間做差異比較 共同好友 共同關注..."""

friends1 = {"zero", "kevin", "jason", "eg"}  # 使用者1的好友們
friends2 = {"Jy", "ricky", "jason", "eg"}  # 使用者2的好友們
# 1.求兩個使用者的共同好友
print(friends1 & friends2)  # {'jason', 'eg'}
# 2.求兩個使用者所有的好友
print(friends1 | friends2)  # {'kevin', 'ricky', 'jason', 'zero', 'Jy', 'eg'}
# 3.求使用者1獨有的好友
print(friends1 - friends2)  # {'zero', 'kevin'}
# 4.求使用者2獨有的好友
print(friends2 - friends1)  # {'ricky', 'Jy'}
# 5.求使用者1和使用者2各自的好友
print(friends1 ^ friends2)  # {'Jy', 'zero', 'kevin', 'ricky'}
# 6.父集與子集
s1 = {11, 22, 33, 44}
s2 = {11, 33}
print(s1 > s2)  # 判斷s1是否是s2的父集   True
print(s2 < s1)  # 判斷s2是否是s1的子集   True

END