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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 的String,集合(List,元组,Dict)

發(fā)布時間:2025/3/20 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 的String,集合(List,元组,Dict) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

想學(xué)爬蟲還是 python 專業(yè)啊,之前一直在用 java, 現(xiàn)在決定嘗嘗鮮,使用 python及爬蟲框架來完成網(wǎng)絡(luò)數(shù)據(jù)采集。

編程語言之間都是相通的,比如都需要模塊化,引入其他文件來實現(xiàn)功能,使用列表等容器來處理數(shù)據(jù),都要使用 json 或 xml 來解析和傳輸數(shù)據(jù)。

你會發(fā)現(xiàn)通過 類比 的方式,帶著問題去學(xué)習(xí),你會發(fā)現(xiàn)走的很快

而且我認(rèn)為代碼示例的作用是 異常強(qiáng)大的, 我會盡量使用代碼示例的方式來展示,以滿足同學(xué)快速學(xué)習(xí)的需要,也備后續(xù)查詢。

下面就是在 使用 python 過程中的問題總結(jié),okay,讓我們一起來歷險吧~

String 有哪些有用的方法?

不管是哪種語言,用的最多的類型估計都是 string (字符串),要想快速入門 python, 掌握 string 也是必須的。

在 java 中使用最多的 string 功能,我也會帶著同樣的疑問來了解 python 該使用什么方法實現(xiàn)。如果這里沒有你要找的方法,可以到 python string 官方地址完整方法去查詢

如何拼接字符串?

  • 使用 + 號來拼接,要注意的是,當(dāng)有數(shù)字的時候一定要轉(zhuǎn)化為字符串格式 str(value) 才能夠相加,不然會報錯。
  • 使用%進(jìn)行拼接,和占位符的概念比較類似,這里舉個栗子
hour = 9 minutes = 45 print('it\'s %d:%d minutes!' %(hour, minutes))

如何分隔字符串?

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' # 對字符串分割 split_str = 'a-b-c-d' print(split_str.split('-'))

如何獲取字符串長度

# 獲取字符串的長度 print(len('banana'))

如何將 list 拼接成字符串?

# 以 - 做間隔,拼接字符串 join_str_list = ['a', 'b', 'c', 'd'] print('-'.join(join_str_list)) # 這里就是用 - 拼接后的值

如何替換字符串?

str.replace(old, new[, count])

count 表示替換的次數(shù),如果沒有指定,則只會替換第一個遇到的

如何去除字符串中的空格?

去除字符串中空格分為 3 種

  • 去除兩端的空格
  • 去除左邊的空格
  • 去除右邊的空格
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' # 去除字符串中的空格 strToStrip = ' abc ' print(strToStrip.strip()) # 去除兩端空格 print(strToStrip.lstrip()) # 去除左邊空格 print(strToStrip.rstrip()) # 去除右邊空格

如何子字符串是否包含在父字符串中?

child_str = 'abc' print('abcd'.find(child_str)) # 如果存在就返回首字母下標(biāo),不存在返回 -1

python 有哪些有用的容器?

學(xué)過 java 的都知道,在 java 中使用最多的容器有 List, Map, Set, Array,這些容器可以讓我們方便的存儲并操作數(shù)據(jù),那么 python 中又有哪些類似的容器可供我們使用呢?

列表 list
python 中也有列表,功能包含了 java 列表,而且更牛的是它可以 包含不同類型的元素

['a', 10, 1.5] # 這就是一個列表,只需要方括號包起來即可

如何遍歷一個列表

有兩種方式可實現(xiàn)

  • for 循環(huán)的方式,這當(dāng)然是最常見的
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' list = ['a', 1, 1.4]for item in list:print(item)

在只需要讀取列表的元素本身時這種方式當(dāng)然很優(yōu)雅。但如果需要獲取元素的下標(biāo),就力不從心了,這就需要下面的方式。

  • 使用內(nèi)置函數(shù) range 和 len, 操作元素下表
list = ['a', 1, 1.4] for i in range(len(list)):list[i] = list[i] * 2print(list[i])

如何對列表切片?

pyton 中專門有切片操作符 :, 想切多厚切多厚,這可比 java 要方便不少。
通過例子來感受下吧。

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' alpha_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] print(alpha_list[1:3]) # ['b', 'c'] print(alpha_list[:4]) # ['a', 'b', 'c', 'd'] print(alpha_list[2:]) # ['c', 'd', 'e', 'f', 'g'] print(alpha_list[:]) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']

如何給列表添加元素?

有四種方式

  • 在列表尾部添加元素 append(value)
  • 將一個列表中的每個元素分別添加到另一個列表上 extend(list)
  • 將一個元素插入到列表的指定位置 insert(index, value)
  • +號,將兩個 list 直接相加, 會返回一個新的 list 對象

碼字太多了,自己都暈了,直接上代碼。

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' list1 = ['a', 'b', 'c', 'd'] list1.append('e') print(list1) # ['a', 'b', 'c', 'd', 'e']list2_1 = ['a', 'b', 'c', 'd'] list2_2 = ['e', 'f', 'g'] list2_1.extend(list2_2) print(list2_1) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']list3 = ['a', 'c', 'd'] list3.insert(1, 'b') # ['a', 'b', 'c', 'd'] print(list3)# 內(nèi)存多余消耗,不推薦 list4_1 = ['a', 'b'] list4_2 = ['c', 'd'] print(list4_1 + list4_2) # ['a', 'b', 'c', 'd']

刪掉元素

也有幾種方法可實現(xiàn)

  • 修改列表,彈出被刪除的值 pop(index)
  • 知道要刪除的元素時 remove(value)
  • 不需要使用刪除的值時 del(index)
  • 刪除多個值 del(index_begin, index_end)
  • 上代碼

    ''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' remove_list_1 = ['a', 'b', 'c'] print(remove_list_1.pop(0)) print(remove_list_1)# ['b', 'c']remove_list_2 = ['a', 'b', 'c'] del remove_list_2[1] print(remove_list_2)# ['a', 'c']remove_list_3 = ['a', 'b', 'c'] remove_list_3.remove('b') print(remove_list_3) # ['a', 'c']remove_list_4 = ['a', 'b', 'c'] del remove_list_4[1:2] print(remove_list_4)# ['a', 'c']

    字典 dict

    dict 和 java 中 Map 非常類似,也是由 key 和 value 組成的,也是
    使用 散列表 的算法存儲, 用過 java 的同學(xué)就直接把它當(dāng)做 Java HashMap 來用就可以啦。另外,在語法上要比 java 也要簡潔不少。

    創(chuàng)建 dict 添加元素

    a_dict = dict() # 這樣就創(chuàng)建了一個空字典 a_dict['one'] = 1 # 塞進(jìn)去一個元素not_empty_dict = {'one': 1, 'two': 2, 'three': 3} # 這是一個包含數(shù)據(jù)的字典

    遍歷 dict

    使用 for 循環(huán)遍歷所有字典,可以遍歷字典中的 key,這樣的遍歷是沒有特定順序的,如果想按照順序遍歷需要使用內(nèi)置函數(shù) sorted

    ''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' d = {'b': 2, 'a': 1, 'c': 3}for item_key in d:print(item_key, d[item_key])for item_key in sorted(d):print(item_key, d[item_key])

    那我如果想要遍歷 dict 中的 values 呢?

    還真有一個方法叫 values(), 它會返回一個值集合,并可以應(yīng)用 in 操作符遍歷

    d = {'b': 2, 'a': 1, 'c': 3}for value in d.values():print(value)for sorted_value in sorted(d.values()):print(sorted_value)

    元組

    什么是元組? java 中可沒有聽過內(nèi)置元組這樣的數(shù)據(jù)結(jié)構(gòu)。

    在前面已經(jīng)講了列表,知道一個列表可以存儲多個數(shù)據(jù)結(jié)構(gòu)。元組和列表很像,但要記住它們間的一個重要區(qū)別: 元組是不可變的。

    如何創(chuàng)建元組?

  • 把各個類型的元素用逗號分隔,就可以得到一個元組,為了好看,常常用括號再圍起來
  • 使用內(nèi)置函數(shù) tuple() 也可以創(chuàng)建元組
  • 注意,由于元組是不可變的,無法修改它的元素。但我們可以使用將多個元組結(jié)合成一個新的元組。(元組也支持 +)

    tuple_a = 1, 2, 3, 4, 5tuple_b = (1, 2, 3, 4, 5) # tuple 內(nèi)置函數(shù)的參數(shù)必須是一個序列 tupe_c = tuple('12345') # 字符串 tuple_e = tuple([1, 2, 3, 4, 5]) # 列表 tuple_f = tuple((1,2,3,4,5)) # 元組tuple_d = tuple_a + tuple_b print(tuple_d)

    元組有什么用?

    既然 python 中有這么個數(shù)據(jù)結(jié)構(gòu),自然就有它的用武之地。還別說,它的用途還真不少。

    • 交換變量 和 對多個變量賦值 更方便,優(yōu)雅了
    ''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' a = 5 b = 4 a,b = b,a # 等式左邊是一個變量的元組 # 等式右邊是表達(dá)式的元組,可以是(字符串,列表,元組都行)c,d = (1,2), [1,2,3] print(c) print(d)
    • 可以在函數(shù)中返回多個值,將它們裝到元組里就行
    def min_max(list):return min(list), max(list)num_list = [3, 1, 5, 2] print(min_max(num_list))

    其他

    上面講述的都是一些大的主題,除了這些,還有一些相對小些的。
    雖然小,但也很重要。這些小且重要的部分都在這個部分存放吧。

    全局變量是如何處理的?

    我們知道 java 中由于變量類型的存在,可以在一個 class 內(nèi)聲明全局變量,從而在 class 的各個方法中讀取和賦值。

    而這點(diǎn)在 python 中卻是行不通的,因為 python 中沒有變量類型, 如果在文件中聲明一個全局變量,再在函數(shù)內(nèi)對這個變量賦值,會直接導(dǎo)致錯誤產(chǎn)生。這是因為在函數(shù)內(nèi)又重新創(chuàng)建了一個局部變量。讀取全局變量也有這個問題。

    那該怎么辦呢?嗯~o( ̄▽ ̄)o global 關(guān)鍵字就要登場了。

    在函數(shù)內(nèi)部,使用全局變量前,先用 global 關(guān)鍵字聲明下這個變量,表示這個變量是全局變量,后面再使用就 okay啦。

    上栗子…

    g_variable = 3def test_g_variable():global g_variableprint(g_variable) # 3g_variable = 2print(g_variable) # 2test_g_variable()

    總結(jié)

    以上是生活随笔為你收集整理的python 的String,集合(List,元组,Dict)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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