Python Day 12 列表&元組&字典&布爾值&整理

 

 

列表的魔法

 

########################深灰魔法########################

1.列表格式

li=[1,12,9,"alex","age"]

2.列表可以嵌套任何類型

列表中的元素可以是 數字,字符串,列表,bool值,所有的都能放

“集合”內部可放任何東西

3.通過索引取值

li=[1,12,['test','new'],"alex"]
print(li[3])

alex

4.通過切片取值

li=[1,12,['test','new'],"alex"]
print(li[0:3])

[1, 12, ['test', 'new']]

結果也是一個列表

li=[1,12,['test','new'],"alex"]
print(li[0:-1])

[1, 12, ['test', 'new']]

 

5.for循環

while循環

li=[1,12,['test','new'],"alex"]
for item in li:
    print(item)

1
12
['test', 'new']
alex

break

continue

6.索引

6a.列表元素,可以通過索引被修改

li=[1,12,['test','new'],"alex"]
li[1]=120
li[2]=[11,22,33]
print(li)

[1, 120, [11, 22, 33], 'alex']

 

6b.可以被刪除

li=[1,12,['test','new'],"alex"]
del li[1]
print(li)

[1, ['test', 'new'], 'alex']

 

7.切片

7a.切片可以修改

li=[1,12,['test','new'],"alex"]
li[1:3]=[120,90]
print(li)

[1, 120, 90, 'alex']

7b.切片可以刪除

li=[1,12,['test','new'],"alex"]
del li[1:3]
print(li)

[1, 'alex']

 

8.支持in操作

li=[1,12,['test','new'],"alex"]
v=12 in li
print(v)

True
 

li=[1,12,['test','new'],"alex"]
v="lex" in li
print(v)

False

 

 

9.操作

索引

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True]
l=li[4][1][0]
print(l)

19

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True]
l=li[4][1][0][1]
print(l)

9

 

10.轉換

列表轉字符串

字符串轉換列表

list("sdfsdfsdf") 內部使用for循環

li='sdflsdkfjlsdfjklsdf'
new_li=list(li)
print(new_li)

['s', 'd', 'f', 'l', 's', 'd', 'k', 'f', 'j', 'l', 's', 'd', 'f', 'j', 'k', 'l', 's', 'd', 'f']

 

li=[11,22,33,"123","alex"]
r=str(li)
print(r)

[11, 22, 33, '123', 'alex']

 

既有字符串又有數字

li=[11,22,33,"123","alex"]
s=""
for i in li:
    i=str(i)
    s=s+i
print(s)

112233123alex

 

只包含字符串

a.for

li=["123","alex"]
s=""
for i in li:
    s=s+i
print(s)

123alex
 

b.join

li=["123","alex"]
s="".join(li)
print(s)

123alex

 

################################灰魔法################################

list 類中提供的方法

對象.方法(..)   對象調用了方法

 

參數

1.append:追加

列表可以修改,不需要有值接收

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True]
v=li.append(5)
li.append(5)
li.append("alex")
li.append([123,234])
print(v)
print(li)

None
[1, 12, 9, 'age', ['石振文', ['19', 10], '龐麥郎'], 'alex', True, 5, 5, 'alex', [123, 234]]

 

 

2.clear 清空

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True]
li.clear()
print(li)

[]

 

3.copy 複製 淺拷貝

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True]
v=li.copy()
print(v)

[1, 12, 9, 'age', ['石振文', ['19', 10], '龐麥郎'], 'alex', True]

 

4.cout 計算元素出現的個數

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
v=li.count(12)
print(v)

4

 

5.extend 擴展原來列表

執行了循環,依次追加

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
li.extend([8989,"真迷糊"])
print(li)

[1, 12, 9, 'age', ['石振文', ['19', 10], '龐麥郎'], 'alex', True, 12, 12, 12, 8989, '真迷糊']

對比append,作爲整體追加

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
li.append([8989,"真迷糊"])
print(li)

[1, 12, 9, 'age', ['石振文', ['19', 10], '龐麥郎'], 'alex', True, 12, 12, 12, [8989, '真迷糊']]

 

6.index 索引

根據值索引位置 從左開始 起始位置

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
v=li.index(12)
print(v)

1

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
v=li.index(12,3)
print(v)

7

 

7.insert 插入

指定索引位置插入

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
li.insert(0,99)
print(li)

[99, 1, 12, 9, 'age', ['石振文', ['19', 10], '龐麥郎'], 'alex', True, 12, 12, 12]

 

8.pop 刪除

刪除某個值(1.指定索引 2.默認刪除最後一個元素)並獲取刪除的值

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
v=li.pop()
print(li)
print(v)

[1, 12, 9, 'age', ['石振文', ['19', 10], '龐麥郎'], 'alex', True, 12, 12]
12

 

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
v=li.pop(1)
print(li)
print(v)

[1, 9, 'age', ['石振文', ['19', 10], '龐麥郎'], 'alex', True, 12, 12, 12]
12

 

9.remove 刪除

刪除列表中的指定值(左邊優先)

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
li.remove(12)
print(li)

 

ps:pop remove del li[0]  del li[7:9]  clear

 

10.revers 翻轉

將當前列表進行翻轉

li = [1, 12, 9, "age", ["石振文", ["19", 10], "龐麥郎"], "alex", True,12,12,12]
li.reverse()
print(li)

[12, 12, 12, True, 'alex', ['石振文', ['19', 10], '龐麥郎'], 'age', 9, 12, 1]

 

11.sort 排序

li = [1, 12, 9,3]
li.sort()
print(li)
li.sort(reverse=True)
print(li)

[1, 3, 9, 12]
[12, 9, 3, 1]

 

 

 

#######字符串創建後不可修改#######

v = "alex"
v = v.replace('l','el')
print(v)

li = [11,22,33,44]
li[0]
li[0] = 999

s = "alex"
li[0]
s[0] = "E"

 

列表有序;元素可以被修改

li = [11,22,33,44]
print(li)
print(li)
print(li)
print(li)
print(li)

 

 

 

 

元組

一級元素不可被修改,不能被增加或者刪除

1.書寫格式

一般寫元組的時候,在最後加一個,

li = [1, 12, 9,3]  #list 類
tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,) #tuple 元組

2.索引取值

tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,) #tuple 元組
v=tu[0]
print(v)

1

3.切片取值

tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,) #tuple 元組
v=tu[0:3]
print(v)

(1, 12, 9)

 

4.for循環

可迭代對象

tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,) #tuple 元組
for item in tu:
    print(item)

1
12
9
3
alex
(22, 11)
[(33, 44)]
True
33
44

 

5.轉換

可迭代對象總結:

字符串

列表

元組

相互轉化

s="sldkfjsldfk2"
li = [1, 12, 9,3]  #list 類
tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,) #tuple 元組

v=tuple(s)
print(v)
m=tuple(li)
print(m)
l=list(tu)
print(l)
tu2=("SHINee","forever")
s2="".join(tu2)  #只有字符串
print(s2)
tu3=("SHINee","is",5,)
s0=""
for item in tu3:
    s0=s0+str(item)
print(s0)

 

元組是有序的

tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,) #tuple 元組
print(tu[6][0][0])

33

 

元組一級元素不可修改

tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,) #tuple 元組
tu[6][0]=44
print(tu)

(1, 12, 9, 3, 'alex', (22, 11), [44], True, 33, 44)

 

1.cout計數

獲取指定元素在元組中出現的次數

tu=(1,12,9,3,"alex",(22,11),[(33,44)],True,33,44,33,)
print(tu.count(33))

2

 

2.index定位

最左開始 起始位置

tu=(1,12,33,9,3,"alex",(22,11),[(33,44)],True,44,33,) #tuple 元組
print(tu.index(33))
print(tu.index(33,5))

2

10

 

字典


1.字典基本結構


dict
info={"k1":"v1", #鍵值對
      "k2":"v2"}

 

2.字典的value 鍵值對

可以是任何值,可以無限嵌套

info={"k1":"18",
      "k2":"True",
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':'vv3'
        }
      ],
      "k4":(11,22,33,44,)
}

3.列表的key

列表,字典不能作爲字典的key,布爾值(True與1需要注意)

key和True都是1,只能保留一個

info={"k1":18,
      True:3,
      2:True,
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':(11,22)
        }
      ],
      "k4":(11,22,33,44,)
      }
print(info)

 

4.字典是無序的

info={"k1":"18",
      "k2":"True",
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':'vv3'
        }
      ],
      "k4":(11,22,33,44,)
}

{'k1': '18', 'k2': 'True', 'k3': [11, 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': 'vv3'}], 'k4': (11, 22, 33, 44)}

 

5.索引的方式查找元素

info={"k1":18,
      2:True,
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':(11,22)
        }
      ],
      "k4":(11,22,33,44,)
      }
v=info['k1']
print(v)
v2=info[2]
print(v2)
v3=info['k3'][3]['kk3'][0]
print(v3)

18
True
11

因爲是無序的不能通過切片方式查找

 

6.支持del刪除

info={"k1":18,
      2:True,
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':(11,22)
        }
      ],
      "k4":(11,22,33,44,)
      }
del info[2]
print(info)

{'k1': 18, 'k3': [11, 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}], 'k4': (11, 22, 33, 44)}
 

info={"k1":18,
      2:True,
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':(11,22)
        }
      ],
      "k4":(11,22,33,44,)
      }
del info['k3'][3]['kk3']
print(info)

{'k1': 18, 2: True, 'k3': [11, 22, 33, {'kk1': 'vv1', 'kk2': 'vv2'}], 'k4': (11, 22, 33, 44)}

 

7.for循環

默認只循環key  等同於info.keys()

info={"k1":18,
      2:True,
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':(11,22)
        }
      ],
      "k4":(11,22,33,44,)
      }
for item in info:
    print(item)


for item in info.keys():
    print(item)

k1
2
k3
k4

只循環values

info={"k1":18,
      2:True,
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':(11,22)
        }
      ],
      "k4":(11,22,33,44,)
      }
for item in info.values():
    print(item)

18
True
[11, 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
(11, 22, 33, 44)

循環key和value,循環鍵值對

info={"k1":18,
      2:True,
      "k3":[
        11,
        22,
        33,
        {
          'kk1':'vv1',
          'kk2':'vv2',
          'kk3':(11,22)
        }
      ],
      "k4":(11,22,33,44,)
      }
for k,v in info.items():
    print(k,v)

k1 18
2 True
k3 [11, 22, 33, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (11, 22)}]
k4 (11, 22, 33, 44)

 

copy

 

1.fromkeys:根據序列創建字典,並指定統一的值

v=dict.fromkeys(["k1",123,'999'],[88,89,90])
print(v)

{'k1': [88, 89, 90], 123: [88, 89, 90], '999': [88, 89, 90]}

 

2.get根據key獲取值

通過索引查找:

不存在即報錯

info={"k1":18
      }
v=info('k1111')
print(v)

Traceback (most recent call last):
  File "C:/Users/Sean/PycharmProjects/untitled1/venv/1", line 3, in <module>
    v=info('k1111')
TypeError: 'dict' object is not callable

 

根據key獲取值,k1111不存在時,可以指定默認返回值(None)

info={"k1":18
      }
v=info.get('k1111',"ssss")
print(v)

ssss

 

3.刪除並獲取值

pop刪除

獲取到的pop是valu

info={"k1":18,"k2":"May"}
v=info.pop("k1")
print(info,v)

{'k2': 'May'} 18
 

移除不存在的key值時,返回默認值

info={"k1":18,"k2":"May"}
v=info.pop("5",6)
print(info,v)

{'k1': 18, 'k2': 'May'} 6

 

popitem

info={"k1":18,"k2":"May"}
k,v=info.popitem()
print(info,k,v)

{'k1': 18} k2 May

 

4.setdefault 設置值

已存在,不設置,獲取當前key對應的值

不存在,設置,獲取當前key對應的值

info={"k1":18,"k2":"May"}
v=info.setdefault("k1111","123")
print(info,v)


{'k1': 18, 'k2': 'May', 'k1111': '123'} 123

 

5.update更新

info={"k1":18,"k2":"May"}
v=info.update({"k1111":"2222","ke":"123"})
print(info)
info.update(k1=123,k3=456,k5="sdf")
print(info)

{'k1': 18, 'k2': 'May', 'k1111': '2222', 'ke': '123'}
{'k1': 123, 'k2': 'May', 'k1111': '2222', 'ke': '123', 'k3': 456, 'k5': 'sdf'}

 

6.keys

 

7.value

 

8.item

 

 

####################整理####################

 

一、數字

int(...)

 

二、字符串

replace/find/join/strip/startswith/split/upper/lower/format

template='i am {name},age:{age}'
v=template.format(**{"name":'alex',"age":19})
print(v)

i am alex,age:19

 

三、列表

append/extend/insert

索引、切片、循環

 

四、元組

忽略

索引、切片、循環  

一級元素不能被修改、刪除、增加

 

五、字典

get/update/keys/valuse/items

for,索引

 

 

dic默認循環key

dic = {"k1":"v1"}
v = "k1" in dic
print(v)

True

dic = {"k1":"v1"}
v = "k1" in dic.values()
print(v)

False

 

六、布爾值

0 1 

bool(...)

None "" () []  0 ==> False

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章