1. 程式人生 > >python基礎知識之列表、元祖、字典、集合、字符串。

python基礎知識之列表、元祖、字典、集合、字符串。

終端 mes ror sort names int 字母 基礎知識 ndt

1.可變類型之列表

列表用 [ ]來定義是可變的,可以通過索引值來去查詢裏面的字段可以可以追加,刪除等

```python
names=‘zhangyang guyun xiangpeng xuliangwei‘
names = [‘zhang‘, ‘zhuang‘, ‘chen‘, ‘qiang‘]
name_list = [[‘zhang‘, ‘zhuang‘], [‘chen‘, ‘qiang‘]]
list_num = [1, 4, 5, 2, 3, 4, 52, 54]
print(len(names)) # 獲取列表長度

print("aaffaa".count("a")) # 獲取a在字符串出現的次數

print(names[1:3]) # 切片

print(names[-1]) # 獲取最後一個元素
print(names[-2:]) #
names.append(‘qianqq‘) # 追加

names.insert(1, ‘chengrouhua‘) # 插入
names.insert(3, "xinzhiyu")
names[2] = "ixnixn" # 修改
names.remove("qiang")
del names[0]
names.pop(0) # 刪除元素 並返回刪除的元素的值 可以加索引 刪除指點的值 不加則刪除最後一個

del names[2:4] # 切片刪除

names.sort() # 排序->對原有列表排序 麽有返回值 (元素是數字,字符等 ,裏面的元素必須一致)
print(sorted(list_num, reverse=True)) # 這個有返回值 不改變原有列表的值 key對應排序規則
print(list_num)

for i in names:
print(i) # 循環遍歷列表

for i in range(1, 10, 2):
print(i)

print(names[::2]) # 隔行篩選

print(‘zhuang‘ in names) # 判斷字段是否在列表裏

name1 = ["wutenglan","sanglaoshi"]

name2 = ["bojie","xize"]

name = name1.extend(name2) # 將name2 並到name1中

names2 = names.copy() # 淺淺的copy

print(dir(names)) # 獲取列表所支持的方法

```
2.不可變類型元素

元祖,是一種不可 變得列表形式,一旦定義則不可以改變,一般用於數據庫的連接,綁定 IP跟端口使用。

元祖特性:
1.不可變,定義元祖 的時候如果只有一個元素這樣必須在元祖後面加逗號加以區分。註:元祖內部如果有列表等可變元素則可以修改

2.只有查詢功能。通過索引值查詢內部數據

3.可變類型字典

字典有如下特點:

1.key-value格式,key是唯一的
2.無序的
3.查詢速度快

```python

info={
‘stu1101‘:"wu teng lang",
‘stu1102‘:"cang",
‘stu1103‘:"xiaoze",
‘stu1104‘:"bo jie"
}
b={1:2,3:4}

print(info[‘stu1101‘]) #查看字典stu1101 的鍵對應的value

info[‘stu1101‘]=‘mmmmm‘ #如果字典有這個key值則修改,沒有則添加
info[‘stu1105‘]=‘sssss‘

info.setdefault(‘stu1101‘,‘alxe‘) #如果key的值 在字典裏則修改,沒有則添加

info.update(b)# 在info字典後面追加B字典的字段,如果重復的更新跟字段。

info.pop(‘stu1105‘) #通過key的值來刪除字典的對應的值 pop方法有返回值,返回刪除元素的value值 不存在key的值會報錯 dic.pop(key[,default]) 可以指定值 不存在用defalut的值

print(info.get(‘stu1106‘)) # 這是一種通過key來獲取值得方式這樣不會報錯,沒有則返回

print(‘stu1104‘ in info) #判斷key的值在不在字典中 通過key的值來判斷 。

print(info.keys()) #返回所有的key #打印所有字典key的 值
print(info.values()) #返回字典所有的value值
print(info.items()) # 返回元祖 把key跟value 組成元祖
info_list = list(info.items()) # 將 字典的key value的值改為 列表 存儲

for k in info:# k是info 的key 遍歷字典key的值打印
print(k,info[k])
```
4.可變類型集合

集合:一個或者 多個元素構成的整體叫做集合
集合的特性

1.天然去重 

2.集合內部元素是無序的

3.通過運算可以取出兩個集合的符合條件的元素類型組成一個新的集合

常見的集合運算如下:

b={1,2,3,4,5,5,5,6}  #互異性天然去重的原則
c={2,3,4,8,9,10,56,45}
s_set = set("hello")  # {'l', 'h', 'e', 'o'} 無須 且 去重

#集合的常用操作

s_set = {'a','b','c'}

s_set.add("d") # 集合的添加 


# 對序列的增加:
update(),而update類似extend方法,update方法可以支持同時傳入多個參數
a={1,2}
a.update([3,4],[1,2,7])
 a={1, 2, 3, 4, 7}
a.update("hello")
a={1, 2, 3, 4, 7, 'h', 'e', 'l', 'o'}

#對集合元素的單個刪除
#集合刪除有兩個辦法:
#元素不在原集合中時:

# set.discard(x)不會拋出異常
# set.remove(x)會拋出KeyError錯誤
a={1,2,3,4}
a.discard(1)
a={2, 3, 4}
a.discard(1) a={2, 3, 4}
a.remove(1)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: 1


b.add(90)  #增加元素
b.remove(90) #刪除元素 如果沒有元素則報錯
b.discard(4) #刪除元素  沒有則不報錯
print(b)
b.pop()  #刪除元素(任意)
print(b)


# 清空 set
pop():由於集合是無序的,pop返回的結果不能確定。且當集合為空時調用pop會拋出KeyError錯誤。
clear():清空集合
# 集合 操作 
print(b-c)  #意思就是拿b中的每一個元素去減c中的元素,得到不同的一個集合。
print(b|c)  #並集兩個集合的合並
print(b^c)  #兩個集合中不是共同部分的元素取出來
d=set(info)  #設置集合  字典是key的值

5.字符串的操作


name='aaalcx lill'
print(name.index("l"))
print(name.count("l"))#  統計字符串某個字符串的數量
print(name.capitalize())#首字母大寫
print(name.center(50,'*'))#把name放在中間 50 個字符
print(name.replace('l','L',4))#代替  三個參數
print("123".isdigit())#判斷是否是整數
print("aaaooolll".endswith('ll'))
msg = "my name is {}, and age is {}"
print(msg.partition('is'))#is 中間分成元祖
print(msg.format("zj","25"))

name.join("cx")
print(name.join("cxb"))#  對數字進行操作

name='abcd lill'
name1="abc \tlill"
name.strip()#變成字符串
name.title()#變成標題
print(name.rsplit())
print(name.capitalize())#首字母大寫
print(name.count("a"))#  統計字符
print(name.center(50,"*"))#一共 打印50字符 不夠用*補上,把name放中間
print(name.endswith("ll"))# 判斷字符串結尾
print(name1.expandtabs(30))

print(name.find("li"))#  查找 索引!字符串可以切片
name3="my  name  is {name} and age is {age}"
print(name3.format(name="alix",age="22"))
print(name3.format_map({"name":"alex","age":"29"}))
print(name3.index("y"))
print(name.isalnum())#  是不是阿拉伯數字
print(name.isalpha())#判斷純粹的英文字符
print(name.isdecimal())#判斷十進制
print(name.isdigit())# 判斷是否整數
print(name.isidentifier())#判斷是不是合法的標識符(變量名)
print(name.islower())# 判斷是小寫!
print(name.isnumeric())#判斷是否是數字!!僅僅是數字 返回True
print(name.isspace())
print(name.istitle())
print(name.isprintable())#  是否可打印!在tty文件設備終端文件
print(name.isupper())# 全是大寫
print("*****")
print("|".join(["1","2","3","4"])) # 列表 裏面的字符串  變成 字符串
print("*****")
print(name.ljust(50,"-"))#  後面 補足*
print(name.rjust(50,'-'))
print(name.lower())# 大寫變成小寫
print(name.upper())

print("\nAlex\n".lstrip())#左邊去空格或者回車
print("\nAlex\n".rstrip())#右邊邊去空格或者回車
print(name.strip())#兩邊都去空格

print("funny keys\n")
v=str.maketrans("abcdef","123456") # 數字對應!
print("Alex li".translate(v))

print("alex l".replace('l','L',1))
print("alex li".rfind("l"))#找到最右邊的的l 並返回

print(name.split())  # 安照 空格 分成列表
print(name.split('a'))  # 安照 a 分成列表
print(name.splitlines()) # 按照換行  分 linux  window
print(name.startswith('a'))
print(name.swapcase()) #大小寫轉換
print(name.title())#  變標題
print("alex  li ".zfill(50))#  50 個不夠在前面補0

print("  name aaa   ".split())
name='aa aaaa'
print(name.isalpha())  # 判斷是不是字母!
print(len('你好'.encode()))


import string
# maketrans 函數 對應的是設定一個格式 對應maketrans(input,output)生成的 是一個模板
table = str.maketrans(string.ascii_lowercase, string.ascii_lowercase[2:] + string.ascii_lowercase[0:2])
#對應的方法為 translate 
print(str.translate('aaa', table))

python基礎知識之列表、元祖、字典、集合、字符串。