Day6和Day7元組和字串

2021-10-08 15:15:28 字數 3117 閱讀 4559

day6 元組

(1)元組和列表類似,也可以包含多種形式的元素,但是元組建立之後不能對其進行修改。

(2)建立元組

元組使用小括號,也可以什麼都不用,但是中間必須用逗號隔開。如果元組只包含乙個元素,在元素的後邊必須用逗號做標記,否則括號會被認為是運算子使用。也可以建立多維的元組

(3)更新和刪除乙個元組

元組中的元素不能賦值

(4)相關操作符

連線操作符+,用來首尾拼接,重複操作符*,用複製拼接

+=和*=這種增強的賦值運算子也可以使用。

元組也可以使用標準的比較操作符(=、>)

(5)其他功能

t.count( x) 返回物件x在元組**現的次數

t.index(x) 是返回物件再元組**現的最左邊的位置,當元組中不包含x的時候,則產生valueerror的異常。

(5)解壓元組

解壓元組就是把元組中的元素乙個乙個的提取出來,一定要每個元素都要有對應的名稱。

如果有很多量不需要,是可以把多個變數丟給乙個變數,但是要加上*號,但是在進行解壓的時候,不能出現多個*,會報錯。

第一題:

寫出下面**的執行結果和最終結果的型別,並分析為什麼會出現這樣的結果。

1)(1, 2)*2

a=(1

,2)*

2print

(a,type

(a))(1

,2,1

,2)<

class

'tuple'

>

分析:此時是元組,*2應該同列表類似

2)(1, )*2

a=(1

,)*2

print

(a,type

(a))

結果:(1, 1)分析:括號裡邊雖然只有乙個元素,但是後邊有逗號,為元組。

3)(1)*2

a=(1

)*2print

(a,type

(a))

結果:2此時括號被認為是運算子,不是元組

第二題:

這個過程屬於平行賦值,也屬於拆包。這個賦值的過程,其實也就是拆包的過程,將元素的資訊由變數接收它。但是在拆包的過程中,必須將右側的所有資訊全部拆完。所以如果沒有可變引數的話,左側的引數個數一定要等於右側列表/元組內元素個數。平行賦值即等號左右兩邊的變數和值可以是多個,但是要保證數量一致。a,b=1,2即a=1,b=2

可迭代物件拆包時,怎麼賦值給佔位符?

在可迭代物件拆包時,使用_(單個元素),*_(連續多個元素)進行佔位

day7 字串

基礎知識

(1)字串的建立

定義:使用固定不變的資料型別表示的,其中存放unicode字串行。??????這是啥?

建立:單引號或者雙引號都行。但是如果在字串內部還需要輸入單引號或者雙引號,就需要加轉義符號或者用三引號了。

三引號""" ******x """,字串中可以包含換行符、製表符以及其他特殊字元。

如果多行輸入不用三引號,還有很多種形式,具體參考《python程式開發指南第三版》

(2)字串的切片與引用

切片會寫成start:end 這種形式,注意在索引的時候,會包含start的元素,但是不會包括end對應的元素。和那個range乙個樣。

其他的索引可以從左往右,也可以從右往左。最後乙個元素是-1.

(3)常用內建方法

第一題:

1)怎麼批量替換字串中的元素?

replace(old, new [, max]) 把 將字串中的old替換成new,如果次數指定了,則替換不超過max次

2)怎麼把字串按照空格進行拆分?

split(str="", num) 不帶引數預設是以空格為分隔符切片字串,如果num引數有設定,則僅分隔num個子字串,返回切片後的子字串拼接的列表。

3)怎麼去除字串首位的空格?

lstrip([chars]) 截掉字串左邊的空格或指定字元。

或者使用

第二題:

實現isdigit函式

def

isdigit

(string)

: l=

len(string)

a=0for i in string:

if(i >=

'0'and i <=

'9')

: a=a+

1else

:print

("false"

)break

if a==l:

print

('true'

)return

()

第三題:(還存在問題)

class

solution

:def

longestpalindrome

(self, s:

str)

->

str:

k =len(s)

self.res =

""def

sett

(i,j)

:while i >=

0and j < k and s[i]

== s[j]

: i -=

1 j +=1if

len(self.res)

< j - i -1:

self.res = s[i+

1:j]

for i in

range

(k):

sett(i,i)

sett(i,i+1)

return self.res

Day6 元組和字典

什麼是元組 tuple 元組就是不可變的列表 元組是容器型資料型別,將 作為容器的標誌,裡面多個元素用逗號隔開 元素1,元素2,元素3,元組不可變 不支援元素的增刪改 元組是有序的 支援下標操作 元素 任何型別的資料,並且可以重複 t1 10 23,90 10 print type t1 t1 空元...

day7 字串和集合

集合與字串 1.集合 2.字串和字元 3.字串的操作 一 集合 集合是可變的 無序的 集合中的元素 不可變資料 唯一的 通過for迴圈遍歷無序序列時,都是將序列轉換成列表,然後遍歷列表。2.增 在集合中新增指定元素 語法 集合.add 元素 3.刪 刪除集合中指定元素 元素不存在會報錯 語法 集合....

day7集合和字串

1.1 集合 集合是容器型資料型別,將 作為容器型標誌,裡面的元素用多個逗號隔開 集合是可變的,無序的 元素 資料型別不可變且唯一 1 空集合 x 空字典 y set 空集合 2 元素是不可變的 s print s s print s typeerror unhashable type list 3...