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

歡迎訪問 生活随笔!

生活随笔

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

python

04.Python基础_列表_元组_字典_集合

發(fā)布時間:2023/12/15 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 04.Python基础_列表_元组_字典_集合 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 1.列表
    • 1.1list
  • 2.列表的索引和切片
    • 練習1 提取數(shù)據(jù)
    • 練習2 用索引取出下面list的指定元素:
  • 3.修改列表的元素值
  • 4.列表的常用方法
    • 4.1append添加元素(與extend有區(qū)別)
    • 4.2練習 使用for循環(huán),把隨機生成的數(shù)字一次添加到列表中去
    • 4.3 extend 添加數(shù)據(jù)(與append有區(qū)別)
    • 4.4 extend 與 append的區(qū)別
    • 4.5 insert插入元素
    • 4.6 查找元素 in not in index count
      • 4.6.1 in的用法 檢測該元素是否在里面
      • 4.6.2not取反
      • 4.6.3 Index索引數(shù)組的位置(與find類似)
      • 4.6.4 find用法
      • 4.6.5count 查找數(shù)組的數(shù)量
    • 4.7 刪除元素del pop remove
      • 4.7.1del:根據(jù)下標進行刪除
      • 4.7.2 pop:刪除最后一個元素
      • 4.7.3 remove:根據(jù)元素的值進行刪除
    • 4.8 對元素排序sort reverse
      • 4.8.1 sort 排序
      • 4.8.2 reverse方法是將list逆置
    • 4.9 練習
    • 4.10 練習
    • 4.11 列表生成式List Comprehensions
    • 4.12 元組(Turple)
    • 4.13 字典dict
    • 4.13.1 方法1 for循環(huán)
      • 4.13.2 創(chuàng)建字典
    • 4.14 刪除字典元素
    • 4.15 遍歷字典
    • 4.16 將其他數(shù)據(jù)處理成字典
    • 4.17 集合 Set

1.列表

1.1list

列表的作用就是存放一堆東西,以便后續(xù)進行排序, 篩選,提取等操作,弄一個列表, 先放進去
列表中的元素,沒有數(shù)據(jù)類型的限制,可以為任何數(shù)據(jù)類型

s = [1,2,3,4,5,6,7,8,9,10] s2 = ['臨','兵','斗','者','皆','列','陣','在','前'] list1 = [1, 2, 3,'on','go',True,False,None]結果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ['臨', '兵', '斗', '者', '皆', '列', '陣', '在', '前'] [1, 2, 3, 'on', 'go', True, False, None]

2.列表的索引和切片

list是一種有序的集合,可以隨時添加和刪除其中的元素。 也就是說列表是內(nèi)部元素可變的一個容器mutable
列表和字符串一樣,是一種可迭代對象.
因此可以和字符串一樣進行索引和切片.語法方面是一樣的.
注意:左開右閉

L[起始位置:終止位置:步長] # 包含起始位置,不包含終止位置

索引是從0,1,2,3,4,5,6,7,8…

l = [1,2,3,4,5,6,7,8,9,0]l[2] 3

案列1

數(shù)值型

l = [1,2,3,4,5,6,7,8,9,0] l[-2:0:-3] l[1::2] 結果 [9, 6, 3] [2, 3, 4, 5, 6, 7, 8] [2, 4, 6, 8, 0]

案例2

# 以下三個結果是相同的 L = [1,2,3,4,5,] L[0:3:1] #默認從第一個開始 L[:3:] #默認步長為1 L[:3] #默認從第一個開始且步長為1 結果 [1, 2, 3]

案例3

字符型
L[起始位置:終止位置:步長]
步長:正數(shù)表示從左到右,負數(shù)表示從右到左

list1 = [33434, '你好', 4545.565555, 'iii', True]list1[::-1] [True, 'iii', 4545.565555, '你好', 33434]list1[::-2] [True, 4545.565555, 33434]list1[-2:0:-1] ['iii', 4545.565555, '你好']

索引是從0,1,2,3,4,5,6,7,8…

練習1 提取數(shù)據(jù)

L = ['python','java', 'C', 'PHP']

從列表中提取出, python,PHP ,[‘java’,‘C’],[‘PHP’,‘java’]

L = ['python','java', 'C', 'PHP'] L[0] 'python'L[3] 'PHP'L[1:3] ['java', 'C']L[-1:-4:-2] ['PHP', 'java']

練習2 用索引取出下面list的指定元素:

L = [['Apple', 'Google', 'Microsoft'],['Java', 'Python', 'Ruby', 'PHP'],['Adam', 'Bart', 'Lisa'] ] # 打印Apple: L = [['Apple', 'Google', 'Microsoft'],['Java', 'Python', 'Ruby', 'PHP'],['Adam', 'Bart', 'Lisa'] ] # 打印Python: print(L[1][1]) # 打印Lisa: print(L[2][2]

3.修改列表的元素值

通過元素的索引位置來索引元素

L = ['python','java','C','PHP']L[0] = 'R' L ['R', 'java', 'C', 'PHP']L[-1] = "JavaScript" L ['R', 'java', 'C', 'JavaScript']L[1:3] = 'CSS','HTML' L ['R', 'CSS', 'HTML', 'JavaScript']

4.列表的常用方法

4.1append添加元素(與extend有區(qū)別)

通過append可以向列表添加元素 添加數(shù)組或者字符串

L = ['Superman','Hulk','Spiderman'] L.append('Leifengxia') L ['Superman', 'Hulk', 'Spiderman', 'Leifengxia']

4.2練習 使用for循環(huán),把隨機生成的數(shù)字一次添加到列表中去

L = [] for i in range(1,10):L.append(i) L [1, 2, 3, 4, 5, 6, 7, 8, 9] L = [] for i in range(1,10):if i % 2 == 0:L.append(i) L [2, 4, 6, 8]

4.3 extend 添加數(shù)據(jù)(與append有區(qū)別)

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

a = [1,2] b = [3,4] a.extend(b) a [1, 2, 3, 4]

4.4 extend 與 append的區(qū)別

extend 與append相同點在于都可以添加數(shù)據(jù),不過對數(shù)據(jù)添加的形式不一樣
append添加元素是以整個數(shù)組一起加進去
而extend添加數(shù)據(jù)是以一個一個字符串的形式添加進去

a = [1,2] b = [3,4]a.append(b) a [1, 2, [3, 4]]a.extend(b) a [1, 2, 3, 4]

4.5 insert插入元素

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

a = ['插','入','素'] a.insert( 2,'元') a['插', '入', '元', '素']

4.6 查找元素 in not in index count

test = ['插', '入', '元', '素','元']

4.6.1 in的用法 檢測該元素是否在里面

'入' in test True

4.6.2not取反

'元' not in test False

4.6.3 Index索引數(shù)組的位置(與find類似)

test.index('元') 2

4.6.4 find用法

s ='xyz' s.find('z') 2

4.6.5count 查找數(shù)組的數(shù)量

test.count('元') 2

4.7 刪除元素del pop remove

4.7.1del:根據(jù)下標進行刪除

test = ['能','不','能','給','我','一','首','歌','的','時間'] del test [1:3] test ['能', '給', '我', '一', '首', '歌', '的', '時間']

4.7.2 pop:刪除最后一個元素

默認刪除最后一個元素 可以指定刪除某一個元素 直接輸入數(shù)組的索引值就好了

movieName = ['加勒比海盜','駭客帝國','第一滴血','指環(huán)王','霍比特人','速度與激情'] movieName.pop() movieName

4.7.3 remove:根據(jù)元素的值進行刪除

指定刪除某一個元素

movieName = ['加勒比海盜','駭客帝國','第一滴血','指環(huán)王','霍比特人','速度與激情'] movieName.remove('駭客帝國') movieName

4.8 對元素排序sort reverse

排序(sort, reverse)

4.8.1 sort 排序

sort方法是將list按特定順序重新排列,默認為由小到大,參數(shù)reverse=True可改為倒序,由大到小。

默認由小到大

a = [1, 4, 2, 3] a a.sort() a [1, 2, 3, 4]

4.8.2 reverse方法是將list逆置

reverse = True表示從大到小 默認False

a = [1, 4, 2, 3] a.sort(reverse=True) a [4, 3, 2, 1]

4.9 練習

有以下列表

L = [‘最怕空氣突然安靜’,‘最怕朋友突然的關心’,‘最怕回憶’,‘突然翻滾絞痛著’,‘不平息’,‘最怕忽然’,‘聽到你的消息’]

M = [‘想念如果會有聲音’,‘不愿那是悲傷的哭泣’,‘終于讓自己屬于’,‘我自己’]

  • 將M列表中的歌詞合并到L中,使歌詞串聯(lián)在一起.

  • 在列表中插入缺少的一句歌詞,使順序連續(xù).

  • 查找列表中是否含有元素"最怕回憶"

  • 刪除列表中的"最怕回憶"

  • 將歌詞拼接成一個字符串

  • 將歌詞翻轉,使用join方法

  • #全部行都能輸出 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"L = ['最怕空氣突然安靜','最怕朋友突然的關心','最怕回憶','突然翻滾絞痛著','不平息','最怕忽然','聽到你的消息'] M = ['想念如果會有聲音','不愿那是悲傷的哭泣','終于讓自己屬于','我自己'] L.extend(M) L L.index('最怕回憶') L L.remove('最怕回憶')['最怕空氣突然安靜','最怕朋友突然的關心','最怕回憶','突然翻滾絞痛著','不平息','最怕忽然','聽到你的消息','想念如果會有聲音','不愿那是悲傷的哭泣','終于讓自己屬于','我自己'] 2 ['最怕空氣突然安靜','最怕朋友突然的關心','最怕回憶','突然翻滾絞痛著','不平息','最怕忽然','聽到你的消息','想念如果會有聲音','不愿那是悲傷的哭泣','終于讓自己屬于','我自己']

    4.10 練習

    小應用: 分別打印出字符串的索引值和字符串本身

    colors = ['red', 'green', 'blue', 'yellow']n = 0 for i in colors:print(n, "--->", colors[n])n+=10 ---> red 1 ---> green 2 ---> blue 3 ---> yellow

    這樣也可以,效果也是一樣

    for i in range(len(colors)):print(i , "---->", colors[i])

    這個也可以

    for i, color in enumerate(colors):print(i, "---->", color)

    4.11 列表生成式List Comprehensions

    如果我們想要生成一個由1 - 10的數(shù)字組成的列表,都有什么辦法呢?
    1.

    a = [1,2,3,4,5,6,7,8,9,10] a
  • list(range(1,11))
  • L = [] for i in range(0,12):L.append(i) L
  • # 把上面的循環(huán)代碼整合一下 [i for i in range(1,11) ]

    4.12 元組(Turple)

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

    aTuple = ('et',77,99.9,'OK') aTuple ('et', 77, 99.9, 'OK') aTuple[0] 'et'

    不過元組的元素不能修改

    但是如果我這樣寫

    aTuple = aTuple[:3] aTuple # 元組不是不能修改嗎,這里為什么被修改了呢? ('et', 77, 99.9)

    現(xiàn)在,aTuple這個tuple不能變了,它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用aTuple[0],aTuple[-1],但不能賦值成另外的元素。

    不可變的tuple有什么意義?因為tuple不可變,所以代碼更安全。

    如果可能,能用tuple代替list就盡量用tuple。
    tuple的陷阱:

    當你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來,比如:

    tp = (1, 2) tp (1, 2)

    tuple的第二個陷阱

    tp5 = ('a', 'b', ['A', 'B']) tp5 ('a', 'b', ['A', 'B'])

    表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素。tuple一開始指向的list并沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。即指向’a’,就不能改成指向’b’,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!

    4.13 字典dict

    Python內(nèi)置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存儲,具有極快的查找速度。

    舉個例子,FIFA18球員能力值排名, 我們要根據(jù)球員的名字查找對應的成績,如果用list實現(xiàn),需要兩個list:

    names = ['克里斯蒂亞諾·羅納爾多', '里奧·梅西', '內(nèi)馬爾','路易斯·蘇亞雷斯', '曼努埃爾·諾伊爾', '羅伯特·萊萬多夫斯基', '塞爾吉奧·拉莫斯' ] scores = [94, 93, 92, 92, 92, 91, 90]

    4.13.1 方法1 for循環(huán)

    給你一個球員名字,要查找對應的成績,就先要在names中找到對應的位置,再從scores取出對應的評分,list越長,耗時越長。

    names = ['羅納爾多', '梅西', '內(nèi)馬爾','蘇亞雷斯', '諾伊爾', '萊萬多夫斯基', '拉莫斯' ] scores = [94, 93, 92, 92, 92, 91, 90]for i in range(len(names)):if names[i]=="內(nèi)馬爾":print(scores[i])

    4.13.2 創(chuàng)建字典

    字典由鍵(key)和對應值(value)成對組成。字典也被稱作關聯(lián)數(shù)組或哈希表?;菊Z法如下:

    dict = {‘Alice’: ‘2341’, ‘Beth’: ‘9102’, ‘Cecil’: ‘3258’}

    注意: 每個鍵與值用冒號隔開(:),每對用逗號,每對用逗號分割,整體放在花括號中({})。 鍵必須獨一無二,但值則不必。

    值可以取任何數(shù)據(jù)類型,但必須是不可變的,如字符串,數(shù)組或元組。

    如果用dict實現(xiàn),只需要一個“名字”-“評分”的對照表,直接根據(jù)名字查找評分,無論這個表有多大,查找速度都不會變慢。用Python寫一個dict如下

    d = {'C羅納爾多': 94, '梅西': 93, '內(nèi)馬爾': 92, '蘇亞雷斯':92, '諾伊爾':92, '萊萬多夫斯基':91, '拉莫斯':90}type(d)dictlen(d)7d['內(nèi)馬爾']92

    我們平時使用字典的時候, 是在字典的索引表里(比如部首表)查這個字對應的頁碼,然后直接翻到該頁,找到這個字。無論找哪個字,這種查找速度都非???#xff0c;不會隨著字典大小的增加而變慢。

    dict就是這種實現(xiàn)方式,給定一個名字,比如’梅西’,dict在內(nèi)部就可以直接計算出梅西對應的存放評分的“頁碼”,也就是93這個數(shù)字存放的內(nèi)存地址,直接取出來,速度非常快。

    你可以猜到,這種key-value存儲方式,在放進去的時候,必須根據(jù)key算出value的存放位置,這樣,取的時候才能根據(jù)key直接拿到value。

    把數(shù)據(jù)放入dict的方法,除了初始化時指定外,還可以通過key放入:
    字典賦值或更改

    d['key'] = value #key 存在即修改,key不存在即新增 d.setdefault('key',value) #只能新增 d['克羅斯'] = 90 d['克羅斯'] d{'C羅納爾多': 94,'梅西': 93,'內(nèi)馬爾': 92,'蘇亞雷斯': 92,'諾伊爾': 92,'萊萬多夫斯基': 91,'拉莫斯': 90,'克羅斯': 90}

    判斷key是否存在

    可以通過 in判斷key是否存在

    "大羅納爾多" in d False

    通過dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

    d.get('托馬斯', -1) -1 d.get('梅西', -1) 93

    4.14 刪除字典元素

    d.pop(‘key’) 必須要傳值,因為字典是無序的

    d.popitem() 隨機刪除一個

    del d[‘key’]

    d.clear() 清空字典

    4.15 遍歷字典

    for k,v in d.items(): #遍歷字典print(k,v)

    無須轉換成list 格式,保留了字典原有的特性

    for k, v in d.items():print(k,v)C羅納爾多 94 梅西 93 內(nèi)馬爾 92 蘇亞雷斯 92 諾伊爾 92 萊萬多夫斯基 91 拉莫斯 90 克羅斯 90 李毅 66 托尼·克羅斯 88

    4.16 將其他數(shù)據(jù)處理成字典

    names = ['羅納爾多', '梅西', '內(nèi)馬爾','蘇亞雷斯', '諾伊爾', '萊萬多夫斯基', '拉莫斯' ] scores = [94, 93, 92, 92, 92, 91, 90] # 首先創(chuàng)建一個空字典 d = {} for number,name in enumerate(names):d[name] = scores[number] d{'羅納爾多': 94,'梅西': 93,'內(nèi)馬爾': 92,'蘇亞雷斯': 92,'諾伊爾': 92,'萊萬多夫斯基': 91,'拉莫斯': 90}

    4.17 集合 Set

    集合(set)是一個無序的不重復元素序列。

    set和dict類似,也是一組key的集合,但不存儲value。由于key不能重復,所以,在set中,沒有重復的key。

    其實集合就是一個沒有value的dict

    # 要創(chuàng)建一個set,需要提供一個list作為輸入集合:s = set([1, 2, 3]) s {1, 2, 3}

    要注意的是set是無序的, 雖然這里1, 2, 3是順序顯示的

    s = set([2, 1, 3]) s {1, 2, 3}

    set 一個常規(guī)應用時過濾重復值

    s = set([1, 1, 2, 2, 3, 3]) s {1, 2, 3}

    可以通過add(key)方法添加元素到set中,但對于已經(jīng)存在的值不會有效果

    s.add(4) s {1, 2, 3, 4} # remove(key) s.remove(4) s {1, 2, 3}

    兩個set可以做數(shù)學意義上的交集、并集等操作

    s1 = set([1, 2, 3]) s2 = set([2, 3, 4]) s1 & s2 {2, 3} s1.intersection(s2) {2, 3} s1 | s2 {1, 2, 3, 4} s1.union(s2) {1, 2, 3, 4}

    總結

    以上是生活随笔為你收集整理的04.Python基础_列表_元组_字典_集合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。