骏马金龙——python语法基础
python基础 变量与运算 符号//%**意义整除整除取余幂次方数据种类 #mermaid-svg-7nSRRijcYFCYwTDr .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-7nSRRijcYFCYwTDr .label text{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .node rect,#mermaid-svg-7nSRRijcYFCYwTDr .node circle,#mermaid-svg-7nSRRijcYFCYwTDr .node ellipse,#mermaid-svg-7nSRRijcYFCYwTDr .node polygon,#mermaid-svg-7nSRRijcYFCYwTDr .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-7nSRRijcYFCYwTDr .node .label{text-align:center;fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .node.clickable{cursor:pointer}#mermaid-svg-7nSRRijcYFCYwTDr .arrowheadPath{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-7nSRRijcYFCYwTDr .flowchart-link{stroke:#333;fill:none}#mermaid-svg-7nSRRijcYFCYwTDr .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-7nSRRijcYFCYwTDr .edgeLabel rect{opacity:0.9}#mermaid-svg-7nSRRijcYFCYwTDr .edgeLabel span{color:#333}#mermaid-svg-7nSRRijcYFCYwTDr .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-7nSRRijcYFCYwTDr .cluster text{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-7nSRRijcYFCYwTDr .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-7nSRRijcYFCYwTDr text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-7nSRRijcYFCYwTDr .actor-line{stroke:grey}#mermaid-svg-7nSRRijcYFCYwTDr .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-7nSRRijcYFCYwTDr .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-7nSRRijcYFCYwTDr #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-7nSRRijcYFCYwTDr .sequenceNumber{fill:#fff}#mermaid-svg-7nSRRijcYFCYwTDr #sequencenumber{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr #crosshead path{fill:#333;stroke:#333}#mermaid-svg-7nSRRijcYFCYwTDr .messageText{fill:#333;stroke:#333}#mermaid-svg-7nSRRijcYFCYwTDr .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-7nSRRijcYFCYwTDr .labelText,#mermaid-svg-7nSRRijcYFCYwTDr .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-7nSRRijcYFCYwTDr .loopText,#mermaid-svg-7nSRRijcYFCYwTDr .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-7nSRRijcYFCYwTDr .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-7nSRRijcYFCYwTDr .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-7nSRRijcYFCYwTDr .noteText,#mermaid-svg-7nSRRijcYFCYwTDr .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-7nSRRijcYFCYwTDr .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-7nSRRijcYFCYwTDr .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-7nSRRijcYFCYwTDr .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-7nSRRijcYFCYwTDr .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .section{stroke:none;opacity:0.2}#mermaid-svg-7nSRRijcYFCYwTDr .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-7nSRRijcYFCYwTDr .section2{fill:#fff400}#mermaid-svg-7nSRRijcYFCYwTDr .section1,#mermaid-svg-7nSRRijcYFCYwTDr .section3{fill:#fff;opacity:0.2}#mermaid-svg-7nSRRijcYFCYwTDr .sectionTitle0{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .sectionTitle1{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .sectionTitle2{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .sectionTitle3{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-7nSRRijcYFCYwTDr .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .grid path{stroke-width:0}#mermaid-svg-7nSRRijcYFCYwTDr .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-7nSRRijcYFCYwTDr .task{stroke-width:2}#mermaid-svg-7nSRRijcYFCYwTDr .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .taskText:not([font-size]){font-size:11px}#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-7nSRRijcYFCYwTDr .task.clickable{cursor:pointer}#mermaid-svg-7nSRRijcYFCYwTDr .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-7nSRRijcYFCYwTDr .taskText0,#mermaid-svg-7nSRRijcYFCYwTDr .taskText1,#mermaid-svg-7nSRRijcYFCYwTDr .taskText2,#mermaid-svg-7nSRRijcYFCYwTDr .taskText3{fill:#fff}#mermaid-svg-7nSRRijcYFCYwTDr .task0,#mermaid-svg-7nSRRijcYFCYwTDr .task1,#mermaid-svg-7nSRRijcYFCYwTDr .task2,#mermaid-svg-7nSRRijcYFCYwTDr .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutside0,#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutside2{fill:#000}#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutside1,#mermaid-svg-7nSRRijcYFCYwTDr .taskTextOutside3{fill:#000}#mermaid-svg-7nSRRijcYFCYwTDr .active0,#mermaid-svg-7nSRRijcYFCYwTDr .active1,#mermaid-svg-7nSRRijcYFCYwTDr .active2,#mermaid-svg-7nSRRijcYFCYwTDr .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-7nSRRijcYFCYwTDr .activeText0,#mermaid-svg-7nSRRijcYFCYwTDr .activeText1,#mermaid-svg-7nSRRijcYFCYwTDr .activeText2,#mermaid-svg-7nSRRijcYFCYwTDr .activeText3{fill:#000 !important}#mermaid-svg-7nSRRijcYFCYwTDr .done0,#mermaid-svg-7nSRRijcYFCYwTDr .done1,#mermaid-svg-7nSRRijcYFCYwTDr .done2,#mermaid-svg-7nSRRijcYFCYwTDr .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-7nSRRijcYFCYwTDr .doneText0,#mermaid-svg-7nSRRijcYFCYwTDr .doneText1,#mermaid-svg-7nSRRijcYFCYwTDr .doneText2,#mermaid-svg-7nSRRijcYFCYwTDr .doneText3{fill:#000 !important}#mermaid-svg-7nSRRijcYFCYwTDr .crit0,#mermaid-svg-7nSRRijcYFCYwTDr .crit1,#mermaid-svg-7nSRRijcYFCYwTDr .crit2,#mermaid-svg-7nSRRijcYFCYwTDr .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-7nSRRijcYFCYwTDr .activeCrit0,#mermaid-svg-7nSRRijcYFCYwTDr .activeCrit1,#mermaid-svg-7nSRRijcYFCYwTDr .activeCrit2,#mermaid-svg-7nSRRijcYFCYwTDr .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-7nSRRijcYFCYwTDr .doneCrit0,#mermaid-svg-7nSRRijcYFCYwTDr .doneCrit1,#mermaid-svg-7nSRRijcYFCYwTDr .doneCrit2,#mermaid-svg-7nSRRijcYFCYwTDr .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-7nSRRijcYFCYwTDr .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-7nSRRijcYFCYwTDr .milestoneText{font-style:italic}#mermaid-svg-7nSRRijcYFCYwTDr .doneCritText0,#mermaid-svg-7nSRRijcYFCYwTDr .doneCritText1,#mermaid-svg-7nSRRijcYFCYwTDr .doneCritText2,#mermaid-svg-7nSRRijcYFCYwTDr .doneCritText3{fill:#000 !important}#mermaid-svg-7nSRRijcYFCYwTDr .activeCritText0,#mermaid-svg-7nSRRijcYFCYwTDr .activeCritText1,#mermaid-svg-7nSRRijcYFCYwTDr .activeCritText2,#mermaid-svg-7nSRRijcYFCYwTDr .activeCritText3{fill:#000 !important}#mermaid-svg-7nSRRijcYFCYwTDr .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-7nSRRijcYFCYwTDr g.classGroup text .title{font-weight:bolder}#mermaid-svg-7nSRRijcYFCYwTDr g.clickable{cursor:pointer}#mermaid-svg-7nSRRijcYFCYwTDr g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-7nSRRijcYFCYwTDr g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-7nSRRijcYFCYwTDr .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-7nSRRijcYFCYwTDr .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-7nSRRijcYFCYwTDr .dashed-line{stroke-dasharray:3}#mermaid-svg-7nSRRijcYFCYwTDr #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr .commit-id,#mermaid-svg-7nSRRijcYFCYwTDr .commit-msg,#mermaid-svg-7nSRRijcYFCYwTDr .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-7nSRRijcYFCYwTDr g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-7nSRRijcYFCYwTDr g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-7nSRRijcYFCYwTDr g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-7nSRRijcYFCYwTDr .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-7nSRRijcYFCYwTDr .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-7nSRRijcYFCYwTDr .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-7nSRRijcYFCYwTDr .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-7nSRRijcYFCYwTDr .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-7nSRRijcYFCYwTDr .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-7nSRRijcYFCYwTDr .edgeLabel text{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-7nSRRijcYFCYwTDr .node circle.state-start{fill:black;stroke:black}#mermaid-svg-7nSRRijcYFCYwTDr .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-7nSRRijcYFCYwTDr #statediagram-barbEnd{fill:#9370db}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-state .divider{stroke:#9370db}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-7nSRRijcYFCYwTDr .note-edge{stroke-dasharray:5}#mermaid-svg-7nSRRijcYFCYwTDr .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-7nSRRijcYFCYwTDr .error-icon{fill:#522}#mermaid-svg-7nSRRijcYFCYwTDr .error-text{fill:#522;stroke:#522}#mermaid-svg-7nSRRijcYFCYwTDr .edge-thickness-normal{stroke-width:2px}#mermaid-svg-7nSRRijcYFCYwTDr .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-7nSRRijcYFCYwTDr .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-7nSRRijcYFCYwTDr .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-7nSRRijcYFCYwTDr .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-7nSRRijcYFCYwTDr .marker{fill:#333}#mermaid-svg-7nSRRijcYFCYwTDr .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-7nSRRijcYFCYwTDr {color: rgba(0, 0, 0, 0.75);font: ;}数据类型序列-元素具有有序性非序列-元素无序性字符串str元组tuple列表list集合set字典dict元素不可变元素不可变元素可变元素可变元素可变
0. 序列
参考:python序列操作
序列(str、list、tuple)可以进行的操作: 通过索引取元素、切片操作、找出第一个元素的位置index()
可变序列(list)可以进行的操作: **1) 删除相关操作有del、remove()、pop()、clear()。 2)添加相关操作有append()、extend()、insert()、s *= n 3)拷贝序列copy()、反转序列reverse()。 4) 注意:列表复制有三种
l0 = [1, 2, 3]print("l0_:",l0)l1 = l0l2 = l0[:]l4 = l0*4print("l4_:",l4)l3 = l0.copy()l0.append(1000)l1.append(0)print("l0:",l0)print("l1:",l1)print("l2:",l2)print("l3:",l3)print("l4:",l4)l0_: [1, 2, 3] l4_: [[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]] l0: [1, 2, 3, 1000, 0] l1: [1, 2, 3, 1000, 0] l2: [1, 2, 3] l3: [1, 2, 3] l4: [[1, 2, 3, 1000, 0], [1, 2, 3, 1000, 0], [1, 2, 3, 1000, 0], [1, 2, 3, 1000, 0]] 可见:因为可变序列引用的是地址,直接通过赋值的方式进行复制,只是将地址复制了,没有真正地重新分配另一块新的地址进行存放,所有当l0和l1任何一方进行改变的时候,都会导致地址的内容发生改变,因此l0和l1会发生改变,而l2,l3是通过copy等方式进行的深层复制,直接分配了一个新的地址进行存储,因此不会随l0改变而改变 l4是对列表进行复制,这样引用的是地址吗,导致后面也会出现随动现象
不可变序列(tuple、str)可以进行的操作: **hash(哈希映射操作):就是根据一定的规则将不可变的序列映射成另一个形式,可以简单地理解为y = f(x)的形式,最常见的是将不可变序列hash成十进制的数字,一般映射关系是一一对应的
>>> hash("asd")-2014632507>>> hash((1,23))1320437575>>> hash([1,23])Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: unhashable type: 'list'能够hash的不可变序列,意味着能作为dict的key,能保存到set或frozenset中
1. 列表 # ----------------------列表的创建------------------l1 = list()l2 = []print("l1:",l1)print("l2:",l2) 1). 添加元素:append()、extend()、insert()
append()、extend()——前者是将整个添加的对象作为一个整体添加而后者则是将可迭代对象的内层每一个元素单个添加
# ----------------------列表元素的添加---------------------## 直接在列表最后面进行元素的添加,append,extendfor i in range(10):l1.append(i)l2.append(i+2)print("l1:",l1)print("l2:",l2)l1.extend(l2)print(l1)## 根据索引将元素插入到指定的位置,列表自动延长,该位置及以后的原来元素向后挪位置l1 = [1,2,3]print("插入前:",l1)l1.insert(1,["插入的元素"])print("插入后:",l1) 2). 删除元素:remove()、pop()、del # -----------------删除元素------------## 直接在列表末尾删除元素,popl1 = [1,2,3]l1.pop()print(l1)## 直接移除指定的元素,remove,若要移除的元素不存在报错l1 = [1,2,3l1.remove(2)print(l1)del l1[1] 3). 其他操作:reverse()、index()、count()等 # ----------------其他-----------------## 合并print(l1 + l2)## 查找第一个元素的索引print(l1.index(1))## 反转print(l1.reverse())## 计数print(l1.count(1))注意:
2、字典——{key:value}形式的非序列容器无序数据结构
字典是无序的,和集合一样,根据索引得到的元素和添加元素的顺序是没有关系的 > 如上图所示,字典是一个通过键值对进行元素的存放的一个数据结构,key代表元素的唯一标签。对于字典的操作都是先对key进行hash,然后根据hash值(可以理解为地址)去得到key和value的指针,如: 1)存放字典元素:根据key得到hash值,若hash值对应的指向value的指针不存在,则新创建key-value键值对,若存在,则将value值覆盖为最新的值
1)创建字典 dict1 = {"1":"1","2":2,"3":3}dict2 = dict(one=1,two=2,three=3)dict3 = dict([('one',1),("two",2)])dict4 = dict(zip(("one","two","three"),(1,2,3))){‘1’: ‘1’, ‘2’: 2, ‘3’: 3} {‘one’: 1, ‘two’: 2, ‘three’: 3} {‘one’: 1, ‘two’: 2} {‘one’: 1, ‘two’: 2, ‘three’: 3}
在python中,能hashable的数据类型都必须是不可变类型的,所以列表、集合、字典不能作为dict的key,字符串、数值、元组都可以作为dict的key(类的对象实例也可以,因为自定义类的对象默认是不可变的)。
2)初始化字典dict.fromkeys(序列,默认的字典值)
dict5 = dict.fromkeys("abcd,",2) 3)字典的拷贝 # ------------字典的拷贝--------------------dict6 = dict1.copy() # 浅拷贝,只是将每一个key的地址给到了新字典print(dict1)print(dict6)print(id(dict1["1"]))print(id(dict6["1"]))dict6["1"] = 4 # 但是在一个拷贝的字典中发生值的改变值,会为这个键新开辟一个地址用于存储新的值print(dict1)print(dict6)print(id(dict1["1"]))print(id(dict6["1"]))print(id(dict1["2"]))print(id(dict6["2"])){‘1’: ‘1’, ‘2’: 2, ‘3’: 3} {‘1’: ‘1’, ‘2’: 2, ‘3’: 3} 1508279661712 1508279661712 {‘1’: ‘1’, ‘2’: 2, ‘3’: 3} {‘1’: 4, ‘2’: 2, ‘3’: 3} 1508279661712 140712196691072 140712196691008 140712196691008
4)增删改查 # --------------------字典的增删改查-------------------------## 查询,根据key查找,不存在时会报错,可以通过重写字典类的__missing__方法来实现返回Nonedict7 = {"1":"1","2":2,"3":3}value = dict7["1"]## 更新dict7.update({"1":2,"4":5})dict7["5"] = 6## pop类print(dict7.pop("1"))print(dict7.popitem()) #按照 LIFO(Last In First Out 后进先出法## 删除dict7.update({"1":2,"4":5})dict7["5"] = 6del dict7["5"]dict7.clear() 5)获得key,value和键值对 #--------------------获得字典key,value,键值对,若想对其进行迭代取值,需要利用list进行解析dict8 = {"1":"1","2":2,"3":3}print(dict8.keys())print(list(dict8.keys()))print(dict8.values())print(dict8.items())print(iter(dict8))dict_keys([‘1’, ‘2’, ‘3’]) [‘1’, ‘2’, ‘3’] dict_values([‘1’, 2, 3]) dict_items([(‘1’, ‘1’), (‘2’, 2), (‘3’, 3)]) <dict_keyiterator object at 0x0000015F2C7BD908>
3、集合set——无value版本的字典无序、元素不重复、元素可变
1)创建 #创建set1 = set()set2 = {1,2,3} 2)集合运算 # 集合运算set3 = {1,2,3}set4 = {3,4,5,6}## 交集interset = set3&set4interset2 = set3.intersection(set4)print(interset)print(interset2)## 并集union1 =set3|set4union2 = set3.union(set4)print(union1)print(union2)## 差集diff1 = set3-set4diff2 = set3.difference(set4)print(diff1)print(diff2)diff3 = set4-set3diff4 = set4.difference(set3)print(diff3)print(diff4)## XOR集合,非相交部分xor1 = set3^set4xor2 = set3.symmetric_difference(set4)print(xor1)print(xor2){3} {3} {1, 2, 3, 4, 5, 6} {1, 2, 3, 4, 5, 6} {1, 2} {1, 2} {4, 5, 6} {4, 5, 6} {1, 2, 4, 5, 6} {1, 2, 4, 5, 6}
3)其他操作 set5 = {1,2,3,4,5}print(set5)set5.add(6)print(set5)set5.remove(6)print(set5)set5.pop()print(set5)set5.clear()print(set5){1, 2, 3, 4, 5} {1, 2, 3, 4, 5, 6} {1, 2, 3, 4, 5} {2, 3, 4, 5} set()
数据类型总结 数据类型元素支持类型元素可变性元素有序性查找元素的方法字符串字符不可变有序根据下标索引列表所有数据类型可变有序根据下标索引字典键(key):不可变数据类型(tuple、str、字符、数值类型等)、可hash的数据类型;值(value):所有数据类型即可可变无序根据键key查找集合所有数据类型(元素不重复)可变无序/元组所有数据类型不可变有序根据下标索引参考文献https://www.cnblogs.com/f-ck-need-u/p/9832640.html