【Python学习笔记】集合
和Bytes
一、集合的定义和类型
- 作用:去重
- 可变集合
set( )
- 不可变集合
fronzenset( )
1.集合的定义
data = "hello"
print(type(data))
print(data)
new_data = set(data) #定义一个新的变量,把旧变量转换成集合
print(type(new_data))
print(new_data)
<class 'str'> #可以看到一开始还是字符串类型
hello #输出的是普通字符串
<class 'set'> #转换成集合类型
{'e', 'h', 'o', 'l'} #去重效果
data = [ "nginx", "tomcat", "nginx", "tomcat","nginx", "tomcat","nginx", "tomcat","nginx", "tomcat"]
new_data = set(data)
print(new_data)
{'tomcat', 'nginx'}
综上所述,集合主要是用来对数据去重的
2.遍历集合
data = [ "nginx", "tomcat", "nginx", "tomcat","nginx", "tomcat","nginx", "tomcat","nginx", "tomcat"]
new_data = set(data)
for i in new_data:
print(i)
tomcat
nginx
3.示例
统计字符出现次数
data = "aaaaaaabbbbbbbbbbbbbbddddddddddddddddcccccccccc"
for i in set(data):
print("字符:%s 出现次数:%s" % (i, data.count(i)))
字符:d 出现次数:16
字符:b 出现次数:14
字符:c 出现次数:10
字符:a 出现次数:7
统计某个网站的访问日志,某个IP
的访问次数
logs = [ "1.1.1.1", "1.1.1.1", "1.1.1.1", "1.1.1.2", "1.1.1.2", "1.1.1.2", "1.1.1.2", "1.1.1.3", "1.1.1.3",]
for i in set(logs):
print("IP地址:%s,访问次数:%s" % (i, logs.count(i)))
IP地址:1.1.1.2,访问次数:4
IP地址:1.1.1.3,访问次数:2
IP地址:1.1.1.1,访问次数:3
二、字符串转Bytes
data = b"hello world" #不支持中文
print(type(data))
print(data)
<class 'bytes'> #类型bytes
b'hello world'
1.encode( )
编码
data = "Python自动化运维"
print(type(data))
print(data)
new_data = data.encode(encoding="utf-8")
print(type(new_data))
print(new_data)
<class 'str'> #字符串类型
Python自动化运维 #普通字符串
<class 'bytes'> #bytes类型
b'Python\xe8\x87\xaa\xe5\x8a\xa8\xe5\x8c\x96\xe8\xbf\x90\xe7\xbb\xb4'
2.bytes()
编码
data = "python自动化运维"
new_data = bytes(data, encoding="utf-8")
print(type(new_data))
print(new_data)
b'python\xe8\x87\xaa\xe5\x8a\xa8\xe5\x8c\x96\xe8\xbf\x90\xe7\xbb\xb4'
三、Bytes
转字符串
1.decode( )
解码
data = b"python\xe8\x87\xaa\xe5\x8a\xa8\xe5\x8c\x96\xe8\xbf\x90\xe7\xbb\xb4"
print(type(data))
new_data = data.decode(encoding="utf-8") #把bytes转成普通字符串
print(type(new_data))
print(new_data)
<class 'bytes'>
<class 'str'>
python自动化运维
2.str( )
解码
data = b"python\xe8\x87\xaa\xe5\x8a\xa8\xe5\x8c\x96\xe8\xbf\x90\xe7\xbb\xb4"
new_data = str(data, encoding="utf-8") #把bytes转成普通字符串
print(type(new_data))
print(new_data)
<class 'str'>
python自动化运维