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

歡迎訪問 生活随笔!

生活随笔

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

python

python--列表与字典

發布時間:2024/1/17 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python--列表与字典 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

列表與字典是其他對象類型的集合。

一、內置對象---list(列表),可以包含數字、字符串或其他列表。其屬性主要有

????? ? 1.任意對象的有序集合,列表就是收集其他對象的地方,同時是有位置順序的。

????????2.通過偏移讀取

? ? ????3.可變長度、異構和任意嵌套

? ? ????4.屬于可變序列的分類

? ? ????5.?對象引用數組

?實際應用中的列表

????????1.基本列表操作 ????????

????????>>> len([1,2,3])????????#列表長度

????????3

????????>>> [1,2,3]+[3,4,5]????#合并

????????[1, 2, 3, 3, 4, 5]

????????>>> [1,2,3]*2????????????#重復

????????[1, 2, 3, 1, 2, 3]

????????>>> str([1,2])+"34"????#將列表轉換為字符串后合并

????????'[1, 2]34'

????????>>> [1,2]+list("34")????#將字符串轉換列表后合并

????????[1, 2, '3', '4']

????????>>>

????????2.列表迭代和解析(隨時蓋樓)? ? ????

????????>>> s=[]

????????>>> for c in 'spam':

????????...? s.append(c*4)????????????????#在列表末尾添加新值

????????...

????????>>> s

????????['ssss', 'pppp', 'aaaa', 'mmmm']

????????>>>

????????3.索引、分片和矩陣? ? ????

????????>>> s=['one','two','three']

????????>>> s[1]

????????'two'

????????>>> s[-1]

????????'three'

????????>>> s[1:]?

????????['two', 'three']

????????>>> s=[[1,2,3],[4,5,6],[7,8,9]]

????????>>> s[1]

????????[4, 5, 6]

????????>>> s[1][1]

????????5

????????4.原處修改列表

????????>>> s=['one','two','three']

????????>>> s[0]="I"????????????????????????#使用索引賦值的方法在原處修改

????????>>> s

????????['I', 'two', 'three']

????????>>> s[1:]=["love",'you']????????#通過分片方法在原處修改,分片的理解最好分兩步,1刪除,刪除等號左邊指定的分片。2插入,將等號右邊的對象的片段插入舊分片的位置

????????>>> s

????????['I', 'love', 'you']

????????>>>

????????>>> s[1:2]=[]? ? ? ? ? ? ? ? ? ? ? ? #先刪除咯

????????>>> s

????????['I', 'you']????????????????#注 實際上分片賦值時一次性替換整個片段的,因為被賦值的序列長度不一定要與被賦值的分片的長度相匹配,所以可以用來替換,增長,縮短主列表。

????????5.列表方法

????????列表對象也支持特定類型方法調用,方法:是屬于特性對象的函數(實際上是引用函數的屬性),以下方法只使用于列表

????????>>> s

????????['I', 'you']

????????>>> s.append('love')????????#在列表末尾增加一個單項

????????>>> s

????????['I', 'you', 'love']

????????>>> s.sort()????????????????????#進行排序,默認是升序(字符串)

????????>>> s

????????['I', 'love', 'you']

????????>>> s.sort(key=str.lower)????????#可以使用name=value語法配置選項,key參數給了一個參數的函數,它返回在排序中使用的值

????????>>> s

????????['I', 'love', 'you']

????????>>> s.sort(key=str.lower,reverse=True)????????#而reverse參數允許使用降序而不是升序

????????>>> s

????????['you', 'love', 'I']

????????>>>

????????注:當使用append和sort原處修改列表對象時,結果并沒有返回列表而是NONE,如下

????????>>> s

????????['one', 'two', 'three']

????????>>> s.append("four")????????????#使用此方法即可

????????>>> s????????????????????????????????

????????['one', 'two', 'three', 'four']

????????>>> s=s.append("five")????????#這樣的修改對象操作 有點副作用,沒有理由重新賦值,使用上面的操作即可

????????>>> s

????????>>>????????????#這里是none

????????>>>

????????>>> s=['one','two','three']

????????>>> s.extend(['four','five'])????????#同時在末尾添加多個項

????????>>> s

????????['one', 'two', 'three', 'four', 'five']

????????>>> s.pop()????????????????????????#刪除末尾的項并返回已刪除的項

????????'five'

????????>>> s.reverse()????????????????????#原處反轉

????????>>> s

????????['four', 'three', 'two', 'one']

????????>>> list(reversed(s))????????????#反轉返回新列表,未保存在s中

????????['one', 'two', 'three', 'four']

????????>>> s.index('three')????????????????#查找three的偏移值

????????1

????????>>> s.insert(1,'test')????????????????? ? #在偏移1處插入test項

????????>>> s

????????['four', 'test', 'three', 'two', 'one']

????????>>> s.remove('test')????????????????????#刪除一個項

????????>>> s.pop(1)????????????????????????#刪除指定偏移的項

????????'three'

????????>>> s

????????['four', 'two', 'one']

????????>>>

????????>>> del s[0]????????#刪除索引為0的項

????????>>> s

????????['two', 'one']????????#刪除分片從偏移0到末尾

????????>>> del s[0:]

????????>>> s

????????[]????????????????????????#空列表

????????>>>

二、字典:無序的集合,是通過鍵對字典進行索引操作,不是偏移位置存取。

????????1.創建方法? ? ?????

????????>>> {'name':'Lili','age':18}????????????????#一次性創建,知道有多少鍵

????????{'name': 'Lili', 'age': 18}

????????>>> s={}????????????????????????????????????????????#動態的創建每一個鍵及值

????????>>> s['name']='Lili'

????????>>> s['age']=18

????????>>> s

????????{'name': 'Lili', 'age': 18}

????????>>> dict(name='Lili',age=18)????????????????#代碼少,鍵必須是字符串

????????{'name': 'Lili', 'age': 18}

????????>>> dict([('name','Lili'),('age',18)])????????????????#程序運行時將鍵和值逐步建立成序列

????????{'name': 'Lili', 'age': 18}

????????>>>? ? ????

????????>>> dict.fromkeys(['a','b'],0)?????????????????#通過fromkeys簡單的傳入所有鍵列表,以及所有鍵的初始值

????????{'a': 0, 'b': 0}

????????>>>

????????>>> dict.fromkeys('fuck')

????????{'f': None, 'u': None, 'c': None, 'k': None}

????????>>>

? ? ????>>> list(zip(['a','b','c'],[1,2,3]))????????????????????????????#zip函數將對象中對應的元素打包成一個個元組,然后將元組轉換為列表

????????[('a', 1), ('b', 2), ('c', 3)]

????????>>> s=dict(zip(['a','b','c'],[1,2,3]))????????????????????#將鍵和值對應起來傳給dict

????????>>> s

????????{'a': 1, 'b': 2, 'c': 3}

????????>>> s={k:v for (k,v)in zip(['a','b','c'],[1,2,3])}????????????#通過字典解析方法創建字典

????????>>> s

????????{'a': 1, 'b': 2, 'c': 3}

????????>>> s={x:x**2 for x in [1,2,3,4]}????????

????????>>> s

????????{1: 1, 2: 4, 3: 9, 4: 16}

????????>>> s={x:x*4 for x in 'fuck'}

????????>>> s

????????{'f': 'ffff', 'u': 'uuuu', 'c': 'cccc', 'k': 'kkkk'}

????????>>>

? ? ? ? 2.字典的基本操作? ? ?????

????????>>> s={'x':3,'y':4,'z':'5'}????????#用花括號括起來,使用key:value并用逗號隔開的元素

????????>>> s['x']????????????#使用key鍵取值,而不是偏移

????????3

????????>>> s

????????{'x': 3, 'y': 4, 'z': '5'}

????????>>>? ? ????

????????>>> len(s)????????#計算字典的長度

????????3

????????>>> 'x' in s????????#判斷鍵是否存在于字典

????????True

????????>>> list(s.keys())????????????#用鍵來創建一個列表

????????['x', 'y', 'z']

????????>>>

????????>>> s['x']=['a','b','c']????????#在原處直接修改

????????>>> s

????????{'x': ['a', 'b', 'c'], 'y': 4, 'z': '5'}

????????>>> del s['z']????????????????????????#del()通過使用key刪除一個元素

????????>>> s

????????{'x': ['a', 'b', 'c'], 'y': 4}

????????>>>

????????>>> dir(s)????????????????????#字典可用的方法

????????['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

????????>>> list(s.values())????????????#通過values方法返回字典中的元素

????????[['a', 'b', 'c'], 4]

????????>>> list(s.items())????????????#通過items方法返回字典中的對元組(key,value)

????????[('x', ['a', 'b', 'c']), ('y', 4)]

????????>>>

????????>>> s.get('z')????????????#使用get()可以判斷一個key是否存在并返回其元素

????????>>>

????????>>> s.get('x')? ? ????????#使用get()可以判斷一個key是否存在并返回其元素并返回其值

????????['a', 'b', 'c']

????????>>> print(s.get('z'))? ? ????????#使用get()可以判斷一個key是否存在并返回其元素,若不存在返回none

????????None

????????>>> s1={'z':5,'a':6}

????????>>> s.update(s1)????????????????#將字典s1合并到s中

????????>>> s

????????{'x': ['a', 'b', 'c'], 'y': 4, 'z': 5, 'a': 6}

????????>>> s.pop()????????????????????????????????????#與列表的pop有所不同,列表中pop()可刪除最后一個元素并返回其值。但字典不可

????????Traceback (most recent call last):

????????? File "<stdin>", line 1, in <module>

????????TypeError: pop expected at least 1 arguments, got 0

????????>>> s.pop('a')? ? ? ? ? ? ?? ? ?? ??? ?? ? ? ?????#通過pop(鍵)刪除一個元素

????????6

????????>>>s


????????{'x': 1, 'y': 2, 'z': 3}

????????>>> for i in s:????????????????????#通過迭代字典中的每一個鍵,打印他們的鍵和值。此命令等同于 for i in s.keys().

????????...? print(i,'\t',s[i])

????????...

????????x? ? ? ? 1

????????y? ? ? ? 2

????????z? ? ? ? 3

????????>>>

????????>>> s={1:3,2:2,3:1}??????????????#鍵不一定是字符串。只要是不可變的對象都可以(除列表外)

????????>>> s

????????{1: 3, 2: 2, 3: 1}

????????>>>

? ? ? ? 3.字典視圖

????????>>> s

????????{'f': 'ffff', 'u': 'uuuu', 'c': 'cccc', 'k': 'kkkk'}

????????>>> s.keys()

????????dict_keys(['f', 'u', 'c', 'k'])

????????>>> d=s.keys()

????????>>> d

????????dict_keys(['f', 'u', 'c', 'k'])

????????>>> list(d)

????????['f', 'u', 'c', 'k']

????????>>> f=s.values()

????????>>> f

????????dict_values(['ffff', 'uuuu', 'cccc', 'kkkk'])

????????>>> list(f)

????????['ffff', 'uuuu', 'cccc', 'kkkk']

????????>>> del s['f']

????????>>> s

????????{'u': 'uuuu', 'c': 'cccc', 'k': 'kkkk'}

????????>>> list(d)

????????['u', 'c', 'k']

????????>>> list(f)

????????['uuuu', 'cccc', 'kkkk']

????????>>>

????????5.字典鍵排序

????????>>> s=dict(zip(['y','a','x'],[1,2,3]))

????????>>> s

????????{'y': 1, 'a': 2, 'x': 3}

????????>>> ks=s.keys()

????????>>> list(ks)

????????['y', 'a', 'x']

????????>>> ks=list(ks)

????????>>> ks

????????['y', 'a', 'x']?

????????>>> ks.sort()????????????????????????????????#sort()

????????>>> ks

????????['a', 'x', 'y']

????????>>> for k in ks:print(k,s[k])

????????...

????????a 2

????????x 3

????????y 1

????????>>>

????????>>>

????????

????????>>> s=dict(zip(['a','c','b'],[1,2,3]))

????????>>> s

????????{'a': 1, 'c': 2, 'b': 3}

????????>>> ks=s.keys()

????????>>> ks

????????dict_keys(['a', 'c', 'b'])

????????>>> sorted(ks)????????????????????????#sorted()

????????['a', 'b', 'c']

????????>>> for k in sorted(ks):print(k,s[k])

????????...

????????a 1

????????b 3

????????c 2

????????>>>

????????6.測試字典鍵是否存在。使用in或者get方法

????????

????????>>> s

????????{'a': 1, 'c': 2, 'b': 3}

????????>>> 'a' in s

????????True

????????>>> print(s.get('a'))

????????1

????????>>>


轉載于:https://blog.51cto.com/12107790/2125432

總結

以上是生活随笔為你收集整理的python--列表与字典的全部內容,希望文章能夠幫你解決所遇到的問題。

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