核心数据结构
在python中通过if...else 来实现分支结构的
arg = 1
if arg == 0:
print('zero')
elif arg == 1:
print('one')
elif arg == 2:
print("two")
else:
print("nothing")
当分支过多时,可以通过字典来实现分支结构
data = {
0: "zero",
1: "one",
2: "two",
}
data.get(arg, "nothing")
字典的特殊方法:setdefault
data = [
("ip", "192.168.1.100"),
("ip", "192.168.1.200"),
("port", 22),
("user", "yangge"),
("user", "shark")
]
groups = {}
for item in data:
li = d1.setdefault(item[0], [])
li.append(item[1])
print(d1)
setdefult的作用:当key存在时,返回已经存在的value,当key不存在时,将该键值对添加到字典中,同时返回value。
Ps:在python里,当key存在,当更新value时,不会创建新key
In [66]: y = {1.0: 'no'}
In [67]: y[True] = 'yes'
In [68]: y
Out[68]: {1.0: 'yes'}
集合:
在 python 中集合看起来像是只有 key 的字典:{'disk','cpu','memory','motherboard'},集合内的元素不允许重复。
In [96]: s1 = set() 字典的创建
In [99]: set('disk')
Out[99]: {'d', 'i', 'k', 's'} 字典的转换
In [100]: set(['disk','cpu','memory'])
Out[100]: {'cpu', 'disk', 'memory'}
In [101]: set(('disk','cpu','memory'))
Out[101]: {'cpu', 'disk', 'memory'}
In [102]: set({'disk': '560G','cpu': '4'})
Out[102]: {'cpu', 'disk'}
In [11]: s2 = {12,3,4,5,6,} 添加数据
In [12]: s2.add('n')
In [15]: s2.remove('n') 删除元素
In [14]: s2.pop() 随机删除元素
集合运算
In [55]: s1 = {"192.168.1.51", "192.168.1.45"} 交集
In [56]: s2 = {"192.168.1.51", "192.168.1.78", }
In [57]: s1 & s2
Out[57]: {'192.168.1.51'}
In [60]: s1 | s2
Out[60]: {'192.168.1.45', '192.168.1.51', '192.168.1.78'} 并集
In [55]: s1 = {"192.168.1.51", "192.168.1.45"}
In [56]: s2 = {"192.168.1.55", "192.168.1.51"}
In [61]: s1 - s2 差集
Out[61]: {'192.168.1.45'}
In [62]: s2 - s1
Out[62]: {'192.168.1.78'}
In [55]: s1 = {"192.168.1.51", "192.168.1.45"}
In [56]: s2 = {"192.168.1.55", "192.168.1.51"} 异或
In [63]: s1 ^ s2
Out[63]: {'192.168.1.45', '192.168.1.78'}
文件操作
with open('a.txt',
'r',
encoding='utf-8'
) as rf, open(
'.a.txt.swap',
'w',
encoding='utf-8') as wf:
# 4. 把原文件删除
import os
os.remove('a.txt')
# 5. 把临时文件的文件名修改为 原文件的文件名
os.rename('.a.txt.swap', 'a.txt')
网友评论