日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python-数据结构(二)

發布時間:2024/9/30 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python-数据结构(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼上篇

三、列表

  • 添加元素("增"append, extend, insert)
    append:通過append可以向列表添加元素,并且默認添加在列表末尾。
  • 示例:

    namesList = ['tom', 'jerry', 'jhon']print("----添加之前,列表中的元素----")print(namesList)print("----添加之后,列表中的元素----")namesList.append("james")print(namesList)<br>運行結果:----添加之前,列表中的元素----['tom', 'jerry', 'jhon']----添加之后,列表中的元素----['tom', 'jerry', 'jhon', 'james']

    extend:通過extend可以將另一個集合中的元素逐一添加到列表中

    示例:

    print("----使用append添加----")a = ['a', 'b', 'c']b = ['1', '2', '3']a.append(b)print(a)print("----使用extend添加----")a = ['a', 'b', 'c']b = ['1', '2', '3']a.extend(b)print(a)運行結果:----使用append添加----['a', 'b', 'c', ['1', '2', '3']]----使用extend添加----['a', 'b', 'c', '1', '2', '3']

    insert:insert(index, object) 在指定位置index前插入元素object

    示例:

    1
    2
    3
    4
    5
    6
    a = [‘a’, ‘b’, ‘c’]
    a.insert(1, “haha”)
    print(a)

    運行結果:
    [‘a’, ‘haha’, ‘b’, ‘c’]

    2. 刪除元素("刪"del, pop, remove,clear)

    del:根據下標進行刪除

    示例:

    movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------刪除之前------')print(movieName)print('------刪除之后------')del movieName[2]print(movieName)運行結果:------刪除之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------刪除之后------['綠巨人', '鋼鐵俠', '雷神', '洛基']

    pop:刪除最后一個元素

    示例:

    movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------刪除之前------')print(movieName)print('------刪除之后------')movieName.pop() # 也可以傳入下標作為參數,刪除該下標的元素print(movieName)運行結果:------刪除之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------刪除之后------['綠巨人', '鋼鐵俠', '超人', '雷神']

    remove:根據元素的值進行刪除

    示例:

    movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------刪除之前------')print(movieName)print('------刪除之后------')movieName.remove('超人')print(movieName)運行結果:------刪除之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------刪除之后------['綠巨人', '鋼鐵俠', '雷神', '洛基']

    clear:清空所有元素

    mlist = [1, 2, 3, 4, 5, 6, 7]mlist.clear()print(mlist)運行結果:[]

    3. 修改元素(“改”)

    修改元素的時候,要通過下標來確定要修改的是哪個元素,然后對其重新賦值

    示例:

    movieName = ['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']print('------修改之前------')print(movieName)print('------修改之后------')movieName[2] = '美國隊長'print(movieName)運行結果:------修改之前------['綠巨人', '鋼鐵俠', '超人', '雷神', '洛基']------修改之后------['綠巨人', '鋼鐵俠', '美國隊長', '雷神', '洛基']
  • 查找元素("查"in, not in, index, count)
    in, not in
  • 示例:

    name_list = ['tom', 'jerry', 'alice', 'james']print('tom' in name_list)print('tom' not in name_list)運行結果:TrueFalseindex, count

    示例:

    name_list = ['tom', 'jerry', 'alice', 'james', 'jerry']print(name_list.index('jerry', 1, 3))print(name_list.index('jerry', 4, 6))print(name_list.count('jerry'))運行結果:142

    5. 排序(sort, reverse)
    sort方法是將list按特定順序重新排列,默認為由小到大,參數reverse=True可改為倒序,由大到小。
    reverse方法是將list逆置。
    示例:

    a = [1, 4, 2, 3, 6, 5, 9, 8, 7]print('----原列表----')print(a)print('----reverse----')a.reverse()print(a)print('----sort----')a.sort()print(a)print('----sort(reverse=True)----')a.sort(reverse=True)print(a)運行結果:----原列表----[1, 4, 2, 3, 6, 5, 9, 8, 7]----reverse----[7, 8, 9, 5, 6, 3, 2, 4, 1]----sort----[1, 2, 3, 4, 5, 6, 7, 8, 9]----sort(reverse=True)----[9, 8, 7, 6, 5, 4, 3, 2, 1]

    四、元組
    python的元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號,列表使用方括號。

    tuple = (1, 2, 3, 4)

  • 訪問元組
  • tuple = (1, 2, 3, 4)print(tuple[0])print(tuple[2])運行結果:13
  • 元組的內置函數count, index
  • tuple = ('tom', 'jerry', 'alice', 'james')print(tuple.index('alice', 1, 3))print(tuple.count('jerry'))運行結果:21

    五、字典

    <strong>字典的創建</strong>person = {"name": "sb", 'age': 18}或person = dict(name='sb', age=18)person = dict({"name": "sb", 'age': 18})person = dict((['name','sb'],['age',18])){}.fromkeys(seq,100) #不指定100默認為None注意:>>> dic={}.fromkeys(['k1','k2'],[])>>> dic{'k1': [], 'k2': []}>>> dic['k1'].append(1)>>> dic{'k1': [1], 'k2': [1]}

    變量info為字典類型:

    info = {‘name’:‘孫悟空’, ‘id’:100, ‘sex’:‘男’, ‘address’:‘花果山’}

    說明:

    字典和列表一樣,也能夠存儲多個數據
    列表中找某個元素時,是根據下標進行的。字典中找某個元素時,是根據’名字’(就是冒號:前面的那個值,例如上面代碼中的’name’、‘id’、‘sex’)
    字典的每個元素由2部分組成,鍵:值。例如 ‘name’:‘孫悟空’ ,'name’為鍵,'孫悟空’為值

  • 根據鍵訪問值
  • info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print(info['name'])print(info['address'])運行結果:孫悟空花果山若訪問不存在的鍵,則會報錯:info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print(info['haha'])運行結果:Traceback (most recent call last):File "X:/xxx/xxx/xxx.py", line 2, in <module>print(info['haha'])KeyError: 'haha'在我們不確定字典中是否存在某個鍵而又想獲取其值時,可以使用get方法,還可以設置默認值:info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print(info.get('name'))print(info.get('haha'))print(info.get('haha', 'haha'))運行結果:孫悟空Nonehaha

    2. 修改元素
    字典的每個元素中的數據是可以修改的,只要通過key找到,即可修改

    info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print('----修改前----')print(info)print('----修改后----')info['name'] = "齊天大圣"print(info)運行結果:----修改前----{'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}----修改后----{'name': '齊天大圣', 'id': 100, 'sex': '男', 'address': '花果山'}

    3. 添加元素
    如果在使用變量名[‘鍵’] = 數據時,這個“鍵”在字典中,不存在,那么就會新增這個元素

    info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print('----修改前----')print(info)print('----修改后----')info['age'] = 500print(info)運行結果:----修改前----{'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}----修改后----{'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山', 'age': 500}

    4. 刪除元素
    del刪除指定的元素

    info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print('----刪除前----')print(info)print('----刪除后----')del info['sex']print(info)運行結果:----刪除前----{'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}----刪除后----{'name': '孫悟空', 'id': 100, 'address': '花果山'}

    clear清空整個字典

    info = {'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}print('----清空前----')print(info)print('----清空后----')info.clear()print(info)運行結果:----清空前----{'name': '孫悟空', 'id': 100, 'sex': '男', 'address': '花果山'}----清空后----{}

    pop刪除指定元素,若刪除的元素不存在,可以指定返回值

    dic = {'k1': 'v1','k2': 'v2'}v = dic.pop('k1')print(dic, v)# 運行結果{'k2': 'v2'} v1dic = {'k1': 'v1','k2': 'v2'}v = dic.pop('k111', 1)print(dic, v)# 運行結果{'k1': 'v1', 'k2': 'v2'} 1
  • keys
    返回一個包含字典所有KEY的列表

    info = {‘name’: ‘孫悟空’, ‘id’: 100, ‘sex’: ‘男’, ‘address’: ‘花果山’}
    info.keys()
    dict_keys([‘name’, ‘id’, ‘sex’, ‘address’])

  • values
    返回一個包含字典所有value的列表

  • info = {‘name’: ‘孫悟空’, ‘id’: 100, ‘sex’: ‘男’, ‘address’: ‘花果山’}
    info.values()
    dict_values([‘孫悟空’, 100, ‘男’, ‘花果山’])

  • items
    返回一個包含所有(鍵,值)元組的列表
  • info = {‘name’: ‘孫悟空’, ‘address’: ‘花果山’}
    info.items()
    dict_items([(‘name’, ‘孫悟空’), (‘address’, ‘花果山’)])

  • has_key和in
    python3去除了has _key替換為in
  • 如果key在字典中,返回True,否則返回False

    info = {‘name’: ‘孫悟空’, ‘address’: ‘花果山’}
    ‘name’ in info
    True
    ‘age’ in info
    False

    看看python2中的has_key,當然python2中in也可以使用

    info = {‘name’: ‘孫悟空’, ‘address’: ‘花果山’}
    ‘name’ in info
    True
    info.has_key(‘name’)
    True
    info.has_key(‘age’)
    False

  • update
  • dic = {'k1': 'v1','k2': 'v2'}dic.update({'k1': 123, 'k3': 456})print(dic)<br># 運行結果{'k1': 123, 'k2': 'v2', 'k3': 456}
  • 字典遍歷
  • info = {'name': '孫悟空', 'address': '花果山'}print('----遍歷字典的key(鍵)----')for key in info.keys():print(key, end='\t')print()print('----遍歷字典的value(值)----')for value in info.values():print(value, end='\t')print()print('----遍歷字典的項(元素)----')for item in info.items():print(item, end='\t')運行結果:----遍歷字典的key(鍵)----name address----遍歷字典的value(值)----孫悟空 花果山 ----遍歷字典的項(元素)----('name', '孫悟空') ('address', '花果山')

    六、集合

    1. 定義
      定義:由不同元素組成的集合,集合中是一組無序排列的可hash值,可以作為字典的key

    特點:

    不同元素組成
    無序
    每個元素必須是不可變類型
    2. 集合的創建
      {1,2,3,1}
      或
      定義可變集合set
      >>> set_test=set(‘hello’)
      >>> set_test
      {‘l’, ‘o’, ‘e’, ‘h’}
      改為不可變集合frozenset
      >>> f_set_test=frozenset(set_test)
      >>> f_set_test
      frozenset({‘l’, ‘e’, ‘h’, ‘o’})

    3. 常用操作
    add 添加元素

    s = {1, 2, 3}s.add(4)print(s)運行結果{1234}

    pop 隨機刪除一個元素

    s = {'b', 123, 2, 3, 'a'}s.pop()print(s)#運行結果{3, 'b', 'a', 123}

    remove 刪除指定元素,刪除不存在的元素時會報錯

    s = {'b', 123, 2, 3, 'a'}s.remove('a')print(s)# 運行結果{2, 3, 'b', 123}

    discard 刪除指定元素,刪除不存在的元素時不會報錯

    intersection 或 & 交集

    s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s.intersection(b)print(sb)print(s & b)# 運行結果{2, 123, 'a'}<br>{2, 123, 'a'}

    union 或 | 并集

    s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s.union(b)print(sb)print(s | b)# 運行結果{2, 3, 'a', 5, 'b', 123}{2, 3, 'a', 5, 'b', 123}

    difference 或 - 差集

    s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s - bbs = b - sprint(sb, bs)# 運行結果{3, 'b'} {5}

    symmetric_difference 或 ^ 交叉補集(兩個集合不共有的部分)

    s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}sb = s.symmetric_difference(b)print(sb)# 運行結果{3, 5, 'b'}

    difference_update 返回兩集合的差集

    s = {'b', 123, 2, 3, 'a'}b = {'a', 2, 5, 123}s.difference_update(b) # 將兩集合的差集返回給sprint(s)# 運行結果{3, 'b'}

    isdisjoint 如果兩集合的交集為空集,返回True

    s = {'b', 2, 3, }b = {'a', 5, 123}v = s.isdisjoint(b)print(v)# 運行結果True

    issubset 如果s1是s2的子集,返回True

    s1 = {1, 2}s2 = {1, 2, 3}v = s1.issubset(s2)print(v)#運行結果True

    issuperset 如果s1包含s2父集,返回True

    s1 = {1, 2}s2 = {1, 2, 3}v = s1.issuperset(s2)print(v)1# 運行結果 <br>False

    update 更新

    s1 = {1, 2}s2 = {1, 2, 3}s1.update(s2)print(s1)# 運行結果{123}

    總結

    以上是生活随笔為你收集整理的Python-数据结构(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。