1. 程式人生 > >Python_基礎_(列表,元組,字典)

Python_基礎_(列表,元組,字典)

存儲 就是 追加 每次 列表 100% sig style 叠代

一,列表

  ################## 列表中的基本操作 ##################

  1.列表的基本形式

Li = [1,2,3,”henry”,”hello”,[“hhhh”,”aaaa”]]

# 用中括號括起來

# 利用逗號分割每個元素

# 列表是有序的

# 列表中的元素可以是數字,字符串,也可以嵌套列表,也可以是布爾值

  2.列表為可叠代類型,支持for循環,也支持whilw循環

  3.列表的存儲與字符串的存儲方式不同,列表通過鏈表進行存儲,不需要連續的空間,列表元素可在原列表中進行修改,不必創建新的列表(對字符串的修改相當於創建新的空間來存放字符串)

  4.列表索引或切片

  5.用索引來刪除元素  del [1]

  6.利用切片來刪除元素  del [0:3]

  7.in 操作 # 判斷一個元素或字符串是否在列表中

>>> test = ["aaa","b","ccc",1,2,3,]
>>> a = "aaa" in test
>>> a
True
>>> 

  8.將一個字符串轉為列表(不能對數字進行for循環,所以不能將數字轉為列表)

>>> test = "helloworld"
>>> new_test = list(test)
>>> new_test [h, e, l, l, o, w, o, r, l, d] >>>

  9.將字符串進行拼接

test_list = [11,22,33,"hello","world"]
s = " "
for item in test_list:
    s = s + str(item)
print(s)

# 輸出
112233helloworld

################################ 當列表中只包含字符串時,有數字時不能用join進行拼接
test_list = ["
hello","world"] print(",".join(test_list)) # 輸出為 hello,world

  ################## 列表中的方法 ##################

  1.test.append(x)  # 在列表test後追加元素x

  2.test.clear()  # 清空列表

  3.test_new = test.copy()  # 淺拷貝

  4.test.count(x)  # 計算列表中元素x的出現次數,不帶參數則報錯

  5.append() 和 extend() 的區別

# append()    
# 將括號中的列表當成一個元素
>>> test = [1,2,3,4,5]
>>> test.append([111,"hello"])
>>> test
[1, 2, 3, 4, 5, [111, hello]]

# extend()
# 將列表的每個元素插入
>>> test = [1,2,3,4,5]
>>> test.extend([111,"hello"])
>>> test
[1, 2, 3, 4, 5, 111, hello]
>>> 

# 插入字符串
test.extend("aaa")    # [1, 2, 3, 4, 5, ‘a‘, ‘a‘, ‘a‘]
test.append("aaa")    # [1, 2, 3, 4, 5, ‘aaa‘]

  6.test.index(a,start=None,end=None)  # 查找,找到第一個就停止查找,指定開始statrt,結束end位置,返回索引值

  7.test.insert(0,99)  # 在指定的位置插入指定元素,在索引0處插入元素99,原先索引位置的元素往後移

  8.a = test.pop(x)  # 刪除索引x處的元素(默認刪除最後一個元素),並返回當前被刪除的值

>>> test = [1,2,3,4,5]
>>> a = test.pop(2)
>>> a
3

  9.test.remove(a)  # 刪除列表中指定的元素 a,刪除列表從左到右第一個元素a

  10.test.reverse()  # 將列表test反轉

>>> test = [1,2,3,2,4,5]
>>> test.reverse()
>>> test
[5, 4, 2, 3, 2, 1]
>>> 

  11.test.sort()  # 將當前列表進行排序,默認從小到大,括號中可指定從大到小  reverse=True

二,元組

  1.基本形式:tu = (11,22,33,44,55)

  2.特性:元素不能被修改,不能增加或刪除元素,元組為有序的

  3.一般寫元組時,在元組的最後加上一個","(對長度沒有影響) 用來區別元組和方法

  4.對元組進行切片,索引 tu[1:2]  tu[0]

  5.元組/列表/字符串,三者之間可以進行相互轉換 

技術分享圖片
# 元組->列表
tu = (1,2,4,"111","hello")
li = list(tu)
print(li)    
# [1, 2, 4, ‘111‘, ‘hello‘]


# 列表->元組
li = [1,2,4,"111","hello"]
tu = tuple(li)
print(tu)
# (1, 2, 4, ‘111‘, ‘hello‘)


# 列表->字符串
li = [1,2,4,"111","hello"]
s = str(li)
print(s)
# [1, 2, 4, ‘111‘, ‘hello‘]


# 字符串->列表
s = "1,2,4,111,hello"
li = list(s)
print(li)
# [‘1‘, ‘,‘, ‘2‘, ‘,‘, ‘4‘, ‘,‘, ‘1‘, ‘1‘, ‘1‘, ‘,‘, ‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]


# 元組->字符串
tu = (1,2,4,"111","hello")
s = str(tu)
print(s)
#(1, 2, 4, ‘111‘, ‘hello‘)


# 字符串->元組
s = "1,2,4,111,hello"
tu = list(s)
print(tu)
# [‘1‘, ‘,‘, ‘2‘, ‘,‘, ‘4‘, ‘,‘, ‘1‘, ‘1‘, ‘1‘, ‘,‘, ‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘]
轉換示例

  6.元組的一級元素不可被修改/刪除/增加

>>> tu = (1,"hello",(11,22),[11,22],True,11)
>>> tu[0] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: tuple object does not support item assignment
>>> 

  6.若元組的二級元素不再是元組,則可對其進行修改

>>> tu = (1,"hello",(11,22),[11,22],True,11)
>>> tu[3][0] = 33
>>> tu
(1, hello, (11, 22), [33, 22], True, 11)
>>> 
三,字典

  1.字典的基本形式:info = {"k1":"v1","k2":"v2"}

  2.字典就是鍵值對形式:  key:value

  3.註

value:可以是任意值,字符串,元組,列表均可
key:數字,字符串,元組,布爾值(但應註意會和0和1會重復 出現重復只保留其中的一個)
列表不能作為字典key
字典不能作為字典的key

  4.當字典中的鍵key出現重復時 只保留其中的一個

  5.字典是無序的,例如每次打印出來的順序會不同

  6.info["k1"] 根據鍵值對的鍵來進行查找

  7.因為字典是無序的,所以不能通過切片方式進行查找

  8.對字典進行循環,默認進行循環的是字典的key

for item in info:

print(item) 輸出為 k1 k2

for item in info.key:# 取得鍵值對的鍵
print(item)

for item in info.value:# 取得鍵值對的值
print(item)

for k,v in info.items: # 取得鍵值對
print(k,v)

  ################## 列表中的方法 ##################

  1.a = dict.fromkeys(["k1 ",123,"999"],123)  # 創建一個新的字典,其中鍵由叠代和值設置為值

(1, hello, (11, 22), [33, 22], True, 11)
>>> a = dict.fromkeys(["k1 ",123,"999"],123)
>>> a
{999: 123, 123: 123, k1 : 123}
>>> 

  2.v = info.pop(‘k1‘)  # 刪除當前的鍵值對 並且可以獲得當前所刪除鍵值對的值

  3.v = info.popitem()   # 隨機刪除一個鍵值對 並返回所刪除的值

  4.info.setdefault("k1","hello")

# 設置值 當前的key已經存在的話  獲取當前key對應的值
# 如果key不存在的話 設置當前的鍵值對 並獲取當前key 對應的值

# 當key值存在時
info = {"k1":"v1","k2":"v2"}
a = info.setdefault("k1","hello")
print(a)
# 輸出為 v1


# 當key不存在時
info = {"k1":"v1","k2":"v2"}
a = info.setdefault("k3","hello")
print(a)
# 輸出為 hello

  5.info.update({"xxx":"yyy"})  # 更新當前字典

info = {"k1":"v1","k2":"v2"}
a = info.update({"k3":"hello"})
print(info)

# 輸出 {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: ‘hello‘}

  6.根據key獲取值,存在時,返回該值,當key不存在時,返回None

info = {"k1":"v1","k2":"v2"}
v = info.get(k5)
print(v) # 輸出的結果為 v1

未完待續.....

Python_基礎_(列表,元組,字典)