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

 

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