【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自动化运维