嘉兴网站建设书生商友,北京网站建设策划,如何免费制作一个网站,网站建设的简历第十章 Python的数据类型
基本数据类型
数字
整数
整数就是整数
浮点数
在编程中#xff0c;小数都称之为浮点数
浮点数的精度问题
print(0.1 0.2)
---------------
0.30000000000000004
1.可以通过round()函数来控制小数点后位数
round(a b)#xff0c;则表示… 第十章 Python的数据类型
基本数据类型
数字
整数
整数就是整数
浮点数
在编程中小数都称之为浮点数
浮点数的精度问题
print(0.1 0.2)
---------------
0.30000000000000004
1.可以通过round()函数来控制小数点后位数
round(a b)则表示结果不保留小数位部分
print(round(0.1 0.2))
---------------
0
round(a b, x)表示将ab的结果保留x位小数位。
print(round(0.1 0.2, 1))
----------------
0.3
2.格式化输出
占位符
%d用于整数的占位符
%f用于浮点数的占位符
%s用于表示字符串的占位符
a 5201314
b 1314520
print(%d %d的结果为%d % (a, b, ab))
----------------------
5201314 1314520的结果为6515834 %.2d表示一共占2位不足位补0超过两位就原样输出
%03d表示一共占3位不足位补0超过三位原样输出。
%13d表示一共占13位不足为补空格超过十三位原样输出。
a 0.1
b 0.2
print(%.1f %.1f的结果为%.1f % (a, b, ab)) # %.1f表示只保留1位小数部分
-------------------------
0.1 0.2的结果为0.3
布尔型 0[False,None]
1[True]所有的非0字符 进制转换
十进制转其它进制 (1).十进制转二进制
bin()函数
用法bin(十进制数值)bin(255)
0b11111111bin(32)
0b100000
(2).十进制转八进制
oct()函数
用法oct(十进制数值)oct(255)
0o377oct(25)
0o31
(3).十进制转十六进制
hex()函数
用法hex(十进制数值)hex(150)
0x96hex(250)
0xfa 其他进制转十进制 (1).二进制转十进制
int()函数
用法int(二进制数值, 2)
print(int(1010, 2))
----------------------
10
(2).八进制转十进制
int()函数
用法int(八进制数值, 8)
print(int(15, 8))
--------------------
13
(3).十六进制转十进制
int()函数
用法int(十六进制数值, 16)
print(int(FF, 16))
--------------------
255 其它进制转其它进制 二进制---八进制先将二进制的数值转换成十进制再将十进制的数值转换成八进制11000011 --- 八进制a int(11000011, 2)
print(a)
b oct(a)
print(b)
------------------------
或
print(oct(int(11000011, 2)))
--------------------
0o303
数字的随机
random模块可以实现随机的功能
import random
random()方法
.ranmdom()方法表示随机生成一个[0,1)的的随机数
a random.random()
print(a)
------------------------
0.06170779578031482
randint()方法
用于随机生成一个[x,y]之间的一个整数
import random
b random.randint(0, 1)
print(b)
----------------------
0/1
randrange()方法
用于随机生成一个[x,y]范围内且递增基数为z的整数
用法:random.randrange(x, y, z)
import random
b random.randrange(0, 10, 2)
print(b)
-----------------------------------
4
choice()方法
表示从某一个字符串中随机挑选出一个字符
用法random.choice(字符串)
import random
print(random.choice(Python))
--------------------
P
sample()方法
从某一个字符串中随机挑选出n个字符并把它们放入列表中
用法random.sample(字符串, n)
import random
print(random.sample(Python, 3))
-------------------
[y, o, t]
请随机生成一个合法的IPv4地址并输出
import random
ip_address_1 random.randint(1, 239)
ip_address_2 random.randint(0, 255)
ip_address_3 random.randint(0, 255)
ip_address_4 random.randint(0, 255)
print(%d.%d.%d.%d % (ip_address_1, ip_address_2, ip_address_3, ip_address_4))
print(ip_address_1, ip_address_2, ip_address_3, ip_address_4, sep.)
----------------
182.13.178.37
182.13.178.37
字符串 在Python中字符串必须用 引起 字符串的定义
str1 python
print(str1)
print(type(str1))
----------------------
123
class str
字符串的方法
(1).将字符串的首字母大写
title()方法
str1 python
print(str1)
print(str1.title())
------------------------
python
Python
(2).字符串全部字母大写
upper()方法
str1 python
print(str1)
print(str1.upper())
------------------------
python
PYTHON
(3).将字符串全部内字母全部改成小写
lower()
str2 NANCY
print(str2)
print(str2.lower())
----------------------
NANCY
nancy
(4).去除字符串的首部空白
lstrip()方法
str3 nihaohahahaha
print(str3)
print(str3.lstrip())
--------------------------------nihaohahahaha
nihaohahahaha
(5).去除字符串的尾部空白
rstrip()
str3 nihaohahahaha
print(str3)
print(str3.rstrip())
----------------------------------nihaohahahaha nihaohahahaha
(6).去除字符串的所有空白
.strip()
str3 nihaohahahaha
print(str3)
print(str3.strip())
-------------------------------------nihaohahahaha
nihaohahahaha
字符串的拼接
字符串之间使用来进行拼接
但必须保证拼接的每一段都是字符串
str1 I
str2 am
str3 23
print(str1 str2 str3)
----------------------------------------
I am 23
字符串与整数的切换
字符串转整数
int()函数
num1 123
print(num1)
print(type(num1))
num2 int(num1)
print(num2)
print(type(num2))
--------------------------
123
class str
123
class int
整数转字符串
str()函数number1 12345
print(number1)
print(type(number1))
number2 (str(number1))
print(number2)
print(type(number2))
------------------------------
12345
class int
12345
class str 组合数据类型 组合数据类型就是指将多个基本数据类型糅合在一块组成组合数据类型
组合数据类型列表、元组、字典、集合 列表
列表的定义
[]空列表list1 [] # 空列表
list2 [1, 2, Hello] # 定义一个列表
print(list2)
print(type(list2))
--------------------------------
[1, 2, Hello]
class list
访问列表中的元素值
索引
列表的索引都是从0开始依次递增的
访问列表中的元素值的方法list1[元素值所在的索引号]
list1 [] # 空列表
list2 [1, 2, Hello] # 定义一个列表
print(list2[1])
------------------------------------
2
# 如果要快速到取到列表中最后一个索引的元素值则可以将索引号置为-1
list2 [1, 2, 3, 252, 253, 254, 210]
print(list2[-1])
-------------------------------
210
列表的嵌套
list1 [1, 2, [A, B, C]]
print(list1[2][2])
-----------------------
C
确定列表的长度
len()用于确定列表的长度/ 用于确定列表中有多少个索引list1 [1, 2, [A, B, C]]
print(len(list1))
-------------------
3
列表的常见操作
# 列表的操作增、删、改、查
列表的增加
所谓列表的增就是往列表中添加新的索引及其对应的元素值。
(1).append方法在列表的末尾新增一个元素值
list2 [1, 2, 3]
print(list2)
list2.append(4)
print(list2)
list2.append(A)
print(list2)
-------------------------
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, A]
(2).insert方法 .insert(索引值, 元素值)可以在指定索引的位置添加一个元素的值
list2 [1, 2, 3]
print(list2)
list2.insert(2, 250)
print(list2)
--------------------------
[1, 2, 3]
[1, 2, 250, 3]
扩展
如何使用.insert方法实现.append方法的功能---(如何使用insert方法总是在列表的末尾插入元素list2 [1, 2, 3, 252, 253, 254, 210]
print(list2)
list2.insert(len(list2), A)
print(list2)
---------------------
[1, 2, 3, 252, 253, 254, 210]
[1, 2, 3, 252, 253, 254, 210, A]
列表的删除
列表的删也就意味着将某个元素值从列表中删除。
(1)del语句del list[索引值]list2 [1, 2, 3]
del list2[2]
print(list2)
del list2[0]
print(list2)
-------------------------------
[2]
如果要使用del语句快速删除列表中的最后一个元素则可以使用del list[-1]的方式
list2 [1, 2, 3, 210, 2, 3, 4, 5]
print(list2[-1]) # 用于确认是否可以取到最后一个元素值
del list2[-1] # 删除最后一个元素值
print(list2)
------------------------------
5
[1, 2, 3, 210, 2, 3, 4]
(2).pop方法list.pop()如果括号内什么都不加则默认弹出列表中的最后一个元素
list2 [1, 2, 3, 210, 2, 3, 4, 5]
list2.pop()
print(list2)如果括号内加的是某个元素具体的索引号则弹出这个索引号上的元素
list2 [1, 2, 3, 210, 2, 3, 4, 5]
list2.pop(0)
print(list2)
---------------------------------
[2, 3, 210, 2, 3, 4, 5]
(3).remove()方法remove(元素值)list2 [1, 2, 3, 210, 2, 3, 4, 5]
print(list2)
list2.remove(210)
print(list2)
----------------------------------
[1, 2, 3, 210, 2, 3, 4, 5]
[1, 2, 3, 2, 3, 4, 5]
# 如果列表中存在多个值相同的元素时则默认只会删除索引靠前的元素
list2 [1, 2, 3, 210, 2, 3, 4, 5]
print(list2)
list2.remove(2)
print(list2)
----------------------------------
[1, 2, 3, 210, 2, 3, 4, 5]
[1, 3, 210, 2, 3, 4, 5]
列表的修改
# 所谓列表的修改就是指将列表中的某个元素值进行修改不会大动干戈的去动整个列表。
# 先使用索引号取到原先索引的位置然后直接进行赋值修改。
list[索引] 元素值list1 [1, 2, 3]
print(list1)
list1[2] 6
print(list1)
---------
[1, 2, 3]
[1, 2, 6]
列表的查看
列表的查看也叫遍历列表就是将列表中的元素一个一个的打印出来。
控制结构循环。
理解一下控制结构所谓的控制结构就是指不按照原先的顺序执行代码for 变量 in 集合:循环体代码
(1).通过访问列表元素来进行遍历
---------------------------------
list1 [A, B, C, 1, 2, 3]
for i in list1:print(i)
print(查询完成)
--------------------------
A
B
C
1
2
3
查询完成
(2).通过索引值进行遍历
range(n)函数可以生成[0,n-1]的整数
list1 [A, B, C, 1, 2, 3]
for i in list(range(6)):print(list1[i])
print(大功告成)
---------------------------
A
B
C
1
2
3
大功告成
(3)通过列表长度来遍历列表
list1 [A, B, C, 1, 2, 3]
for i in list(range(len(list1))):print(list1[i])
print(大功告成)
-----------------------
A
B
C
1
2
3
大功告成
range()函数的补充 range(x, y) # 生成从x开始到y-1为止的整数range(x, y, z)# 生成从x开始到y-1且递增基数为z的整数
range()函数的使用示例生成192.168.1.0/24所有可用的IP地址并输出
list1 []
for i in range(1, 255):a 192.168.1. str(i) # 字符串拼接或# a 192.168.1.%d % i # 格式化输出list1.append(a)
print(list1)
----------------------------
[192.168.1.1, 192.168.1.2, 192.168.1.3, 192.168.1.4, 192.168.1.5, 192.168.1.6, 192.168.1.7, 192.168.1.8, 192.168.1.9, 192.168.1.10, 192.168.1.11, 192.168.1.12, 192.168.1.13, 192.168.1.14, 192.168.1.15, 192.168.1.16, 192.168.1.17, 192.168.1.18, 192.168.1.19, 192.168.1.20, 192.168.1.21, 192.168.1.22, 192.168.1.23, 192.168.1.24, 192.168.1.25, 192.168.1.26, 192.168.1.27, 192.168.1.28, 192.168.1.29, 192.168.1.30, 192.168.1.31, 192.168.1.32, 192.168.1.33, 192.168.1.34, 192.168.1.35, 192.168.1.36, 192.168.1.37, 192.168.1.38, 192.168.1.39, 192.168.1.40, 192.168.1.41, 192.168.1.42, 192.168.1.43, 192.168.1.44, 192.168.1.45, 192.168.1.46, 192.168.1.47, 192.168.1.48, 192.168.1.49, 192.168.1.50, 192.168.1.51, 192.168.1.52, 192.168.1.53, 192.168.1.54, 192.168.1.55, 192.168.1.56, 192.168.1.57, 192.168.1.58, 192.168.1.59, 192.168.1.60, 192.168.1.61, 192.168.1.62, 192.168.1.63, 192.168.1.64, 192.168.1.65, 192.168.1.66, 192.168.1.67, 192.168.1.68, 192.168.1.69, 192.168.1.70, 192.168.1.71, 192.168.1.72, 192.168.1.73, 192.168.1.74, 192.168.1.75, 192.168.1.76, 192.168.1.77, 192.168.1.78, 192.168.1.79, 192.168.1.80, 192.168.1.81, 192.168.1.82, 192.168.1.83, 192.168.1.84, 192.168.1.85, 192.168.1.86, 192.168.1.87, 192.168.1.88, 192.168.1.89, 192.168.1.90, 192.168.1.91, 192.168.1.92, 192.168.1.93, 192.168.1.94, 192.168.1.95, 192.168.1.96, 192.168.1.97, 192.168.1.98, 192.168.1.99, 192.168.1.100, 192.168.1.101, 192.168.1.102, 192.168.1.103, 192.168.1.104, 192.168.1.105, 192.168.1.106, 192.168.1.107, 192.168.1.108, 192.168.1.109, 192.168.1.110, 192.168.1.111, 192.168.1.112, 192.168.1.113, 192.168.1.114, 192.168.1.115, 192.168.1.116, 192.168.1.117, 192.168.1.118, 192.168.1.119, 192.168.1.120, 192.168.1.121, 192.168.1.122, 192.168.1.123, 192.168.1.124, 192.168.1.125, 192.168.1.126, 192.168.1.127, 192.168.1.128, 192.168.1.129, 192.168.1.130, 192.168.1.131, 192.168.1.132, 192.168.1.133, 192.168.1.134, 192.168.1.135, 192.168.1.136, 192.168.1.137, 192.168.1.138, 192.168.1.139, 192.168.1.140, 192.168.1.141, 192.168.1.142, 192.168.1.143, 192.168.1.144, 192.168.1.145, 192.168.1.146, 192.168.1.147, 192.168.1.148, 192.168.1.149, 192.168.1.150, 192.168.1.151, 192.168.1.152, 192.168.1.153, 192.168.1.154, 192.168.1.155, 192.168.1.156, 192.168.1.157, 192.168.1.158, 192.168.1.159, 192.168.1.160, 192.168.1.161, 192.168.1.162, 192.168.1.163, 192.168.1.164, 192.168.1.165, 192.168.1.166, 192.168.1.167, 192.168.1.168, 192.168.1.169, 192.168.1.170, 192.168.1.171, 192.168.1.172, 192.168.1.173, 192.168.1.174, 192.168.1.175, 192.168.1.176, 192.168.1.177, 192.168.1.178, 192.168.1.179, 192.168.1.180, 192.168.1.181, 192.168.1.182, 192.168.1.183, 192.168.1.184, 192.168.1.185, 192.168.1.186, 192.168.1.187, 192.168.1.188, 192.168.1.189, 192.168.1.190, 192.168.1.191, 192.168.1.192, 192.168.1.193, 192.168.1.194, 192.168.1.195, 192.168.1.196, 192.168.1.197, 192.168.1.198, 192.168.1.199, 192.168.1.200, 192.168.1.201, 192.168.1.202, 192.168.1.203, 192.168.1.204, 192.168.1.205, 192.168.1.206, 192.168.1.207, 192.168.1.208, 192.168.1.209, 192.168.1.210, 192.168.1.211, 192.168.1.212, 192.168.1.213, 192.168.1.214, 192.168.1.215, 192.168.1.216, 192.168.1.217, 192.168.1.218, 192.168.1.219, 192.168.1.220, 192.168.1.221, 192.168.1.222, 192.168.1.223, 192.168.1.224, 192.168.1.225, 192.168.1.226, 192.168.1.227, 192.168.1.228, 192.168.1.229, 192.168.1.230, 192.168.1.231, 192.168.1.232, 192.168.1.233, 192.168.1.234, 192.168.1.235, 192.168.1.236, 192.168.1.237, 192.168.1.238, 192.168.1.239, 192.168.1.240, 192.168.1.241, 192.168.1.242, 192.168.1.243, 192.168.1.244, 192.168.1.245, 192.168.1.246, 192.168.1.247, 192.168.1.248, 192.168.1.249, 192.168.1.250, 192.168.1.251, 192.168.1.252, 192.168.1.253, 192.168.1.254] 列表的排序
列表的排序是指将列表中所有元素的值进行比较按照一定的顺序来进行排列。
升序从小到大
降序从大到小
1.永久性排序(谨慎使用)
.sort()方法升序
list1 [1, 10, 3, 5, 2, 6]
print(list1)
list1.sort()
print(list1)
---------------------------
[1, 10, 3, 5, 2, 6]
[1, 2, 3, 5, 6, 10]
降序
list1 [1, 10, 3, 5, 2, 6]
print(list1)
list1.sort(reverseTrue)
print(list1)
[1, 10, 3, 5, 2, 6]
[10, 6, 5, 3, 2, 1]
永久性排序结束后列表就再也回不到之前的形态了。
如果要永久性排序建议先备份原列表。
2.临时性排序
sorted()函数升序
list1 [1, 10, 3, 5, 2, 6]
print(list1)
print(sorted(list1))
print(list1)
-----------------------------
[1, 10, 3, 5, 2, 6]
[1, 2, 3, 5, 6, 10]
[1, 10, 3, 5, 2, 6]
降序
list1 [1, 10, 3, 5, 2, 6]
print(list1)
print(sorted(list1, reverseTrue))
print(list1)
---------------------
[1, 10, 3, 5, 2, 6]
[10, 6, 5, 3, 2, 1]
[1, 10, 3, 5, 2, 6]
3.反转列表
.reverse()方法永久性反转list1 [1, 10, 3, 5, 2, 6]
print(list1)
list1.reverse()
print(list1)
-----------------------
[1, 10, 3, 5, 2, 6]
[6, 2, 5, 3, 10, 1]
列表解析式
列表解析式一个固定格式的东西列表中存放的是一个变量的值这个变量值在后面的循环中依次赋值list1 [i for i in range(2, 101, 2)] # 后面的for循环为i提供值
print(list1)
----------------------------------
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
列表和字符串之间的转换
列表转字符串
列表转字符串
str()函数list1 [CCIE]
print(list1)
print(type(list1))
str1 str(list1)
print(str1)
print(type(str1))
-----------------------
[CCIE]
class list
[CCIE]
class str
list1 [C, C, I, E]
str1 str(list1)
print(str1)
str2 list1[0] list1[1] list1[2] list1[3]
print(str2)
--------------------------
[C, C, I, E]
CCIE
字符串转列表
list()函数str1 Putty
print(str1)
print(type(str1))
list1 list(str1)
print(list1)
print(type(list1))
----------------------------
Putty
class str
[P, u, t, t, y]
class list
列表的切片
当列表范围过大需要只取部分值的时候
list[起始索引:结束索引1]
list1 [i for i in range(2, 101, 2)]
print(list1)
list2 list1[0:5]
print(list2)
list3 list1[5:10]
print(list3)
-----------------------------------
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
[2, 4, 6, 8, 10]
[12, 14, 16, 18, 20]
字符串的切片
方法一先将字符串转为列表进行列表的切片切完之后再转回字符串
str1 HappyNationalDay
list1 list(str1)
print(list(str1))
print(list1)
list2 list1[0:5]
print(list2)
str2 list1[0] list1[1] list1[2] list1[3] list1[4]
print(str2)
print(type(str2))
-----------------------------
[H, a, p, p, y, N, a, t, i, o, n, a, l, D, a, y]
[H, a, p, p, y, N, a, t, i, o, n, a, l, D, a, y]
[H, a, p, p, y]
Happy
class str
字符串的方法 .join()方法将列表内的字符一一拼接
str1 HappyNationalDay
list1 list(str1) # 将字符串转为列表
list2 list1[0:5] # 进行列表的切片 [起始索引:结束索引1]
str2 # 定义一个新的空字符串
str2 str2.join(list2) # 使用join()方法将list2中的所有元素作为字符串 填入str2中
print(str2)
----------------------------------
Happy
方法二
直接对字符串进行切片方法和列表类似[起始索引:结束索引1]
str1 HappyNationalDay
str2 str1[0:5]
print(str2)
-----------------------------------
Happy
方法三
split()方法可以在指定的字符处切片str1 192.168.11.128
str2 str1.split(.)
print(str2)
-----------------------------
[192, 168, 11, 128]
str1 192.168.11.128
str2 str1.split(., maxsplit1) # maxsplit用于控制切的次数
print(str2)
-------------------------------------
[192, 168.11.128]
可变数据类型与不可变数据类型
可变数据类型列表字典
不可变数据类型元组。
描述性地址相同的是可变数据类型描述性地址不相同的是不可变数据类型。# id()函数 用于查看存放在内存中的地址
a [1, 2, 3]
print(id(a)) # 查看a这个列表存储在内存中的地址
-----------------
2439173331328 # 描述性地址
元组
元组的定义
元组的定义()tuple1 () # 空元组
tuple2 (1, 2, 3)
print(tuple2)
print(type(tuple2))
(1, 2, 3)
class tuple
元组元素值的修改
元组不能直接修改元素值但是列表可以
所以可以先把元组转成列表修改修改完再转回元组。列表转元组:tuple(list)元组转列表:list(tuple)第一步将元组转为列表
tuple2 (1, 2, 3)
list2 list(tuple2)
print(list2)
print(type(list2))
第二步在列表中进行元素值的修改
list2[2] 300
print(list2)
第三步将修改好元素的列表转回为元组输出元组
tuple2 tuple(list2)
print(tuple2)
print(type(tuple2))
---------------------------------------
[1, 2, 3]
class list
[1, 2, 300]
(1, 2, 300)
class tuple
修改嵌套在元组里面的列表元素值
tuple8 (1, 2, [1, 2, 3])
print(tuple8)
tuple8[2][2] 300
print(tuple8)
----------------------
(1, 2, [1, 2, 3])
(1, 2, [1, 2, 300])
字典
字典是组合数据类型中的可变数据类型
字典的组成键值对一个键对应一个值一个键可以有多个值。
字典的定义
{}dict1 {} # 空字典
dict2 {R1: 192.168.1.1, Mask: /24}
print(dict2)
-----------------------------------
{R1: 192.168.1.1, Mask: /24}
字典规范化写法
dict1 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.123.1.1,Lo0 Mask: 255.255.255.0
}
字典的操作
访问字典中的值
通过键来访问值dict2 {R1: 192.168.1.1, Mask: /24}
print(dict2[Mask])
------------------------------------
/24
向字典中添加键值对
dict2 {R1: 192.168.1.1, Mask: /24}
dict2[Description] This is R1 # dict2[键] 值
print(dict2)
-----------------------------
{R1: 192.168.1.1, Mask: /24, Description: This is R1}
删除键值对
del语句dict1 {} # 空字典
dict2 {R1: 192.168.1.1, Mask: /24}
del dict2[R1]
print(dict2)
-------------------------
{Mask: /24}
修改键值对
通过访问键重新赋值。dict2 {R1: 192.168.1.1, Mask: /24}
dict2[R1] 10.1.1.1
print(dict2)
--------------------------
{R1: 10.1.1.1, Mask: /24}
遍历字典
(1)遍历所有的键值对
.items()可以遍历字典中的所有键值对
for key, value in dict1.items():print(这是键: key)print(这是键: value)
----------------------------------
这是键:device
这是键:Cisco IOS-L3 Switch
这是键:Description
这是键:This is a Core-Switch
这是键:Lo0 IP Address
这是键:10.123.1.1
这是键:Lo0 Mask
这是键:255.255.255.0
(2).遍历所有的键
for key in dict1.keys():print(key)
---------------------------
device
Description
Lo0 IP Address
Lo0 Mask
(3).遍历所有的值for value in dict1.values():print(value)
-----------------------------------
Cisco IOS-L3 Switch
This is a Core-Switch
10.123.1.1
255.255.255.0
字典的方法操作
1.清空所有键值对
.clear()方法dict1 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.123.1.1,Lo0 Mask: 255.255.255.0
}
print(dict1)
dict1.clear()
print(dict1)
------------------------
{device: Cisco IOS-L3 Switch, Description: This is a Core-Switch, Lo0 IP Address: 10.123.1.1, Lo0 Mask: 255.255.255.0}
{}
2.根据key获取value
.get()方法相当于是[]的增强版。如果get后面跟的键在字典中存在且有对应值则直接返回指。如果get后面跟的键在字典不存在则返回None而非报错dict1 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.123.1.1,Lo0 Mask: 255.255.255.0
}
device_id dict1.get(device)
print(device_id)
------------------------
Cisco IOS-L3 Switch
3.更新现有字典中key的value
.update()方法使用新字典中的值替换旧字典中的值dict1 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.123.1.1,Lo0 Mask: 255.255.255.0
}
dict2 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.1.1.1,Lo0 Mask: 255.255.255.0
}
dict1.update(dict2) # 用dict2来更新dict1
print(dict1)
-------------------------------
{device: Cisco IOS-L3 Switch, Description: This is a Core-Switch, Lo0 IP Address: 10.1.1.1, Lo0 Mask: 255.255.255.0}
4.以列表形式返回可遍历的(键值)元组
.items()方法dict2 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.1.1.1,Lo0 Mask: 255.255.255.0
}
key_value dict2.items()
print(key_value)
----------------------------------
dict_items([(device, Cisco IOS-L3 Switch), (Description, This is a Core-Switch), (Lo0 IP Address, 10.1.1.1), (Lo0 Mask, 255.255.255.0)])
5.将一个字典所有的键生成列表并返回
.keys()方法
dict2 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.1.1.1,Lo0 Mask: 255.255.255.0
}
key dict2.keys()
print(key)
-----------------------------------------
dict_keys([device, Description, Lo0 IP Address, Lo0 Mask])
6.以列表返回字典中的所有值
.values()方法dict2 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.1.1.1,Lo0 Mask: 255.255.255.0
}
values dict2.values()
print(values)
---------------------------------
dict_values([Cisco IOS-L3 Switch, This is a Core-Switch, 10.1.1.1, 255.255.255.0])
7.获取指定key的value并删除这个key的value
.pop()方法 #弹出根据key弹出valuedict2 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.1.1.1,Lo0 Mask: 255.255.255.0
}
pop_key dict2.pop(Description)
print(dict2)
print(pop_key)
--------------------
{device: Cisco IOS-L3 Switch, Lo0 IP Address: 10.1.1.1, Lo0 Mask: 255.255.255.0}
This is a Core-Switch
8.键值对一起弹出弹出后变为元组
.popitems()dict2 {device: Cisco IOS-L3 Switch,Description: This is a Core-Switch,Lo0 IP Address: 10.1.1.1,Lo0 Mask: 255.255.255.0
}
print(dict2)
dict2.popitem()
print(dict2)
--------------------
{device: Cisco IOS-L3 Switch, Description: This is a Core-Switch, Lo0 IP Address: 10.1.1.1, Lo0 Mask: 255.255.255.0}
{device: Cisco IOS-L3 Switch, Description: This is a Core-Switch, Lo0 IP Address: 10.1.1.1}
字典的演练
请按照以下要求生成一个字典字典中的键为R1、R2、R3、R4等共计50个(R1....R50)每个键对应的值为一个随机生成的IP地址。
import random
dict1 {}
for i in range(1, 51):ip_add_1 random.randint(0, 239)ip_add_2 random.randint(0, 256)ip_add_3 random.randint(0, 256)ip_add_4 random.randint(0, 256)ip_add %d.%d.%d.%d % (ip_add_1, ip_add_2, ip_add_3, ip_add_4)key R str(i) 或 key R%s % idict1[key] ip_add
print(dict1)
---------------------
{R1: 118.35.62.190, R2: 168.3.24.235, R3: 116.248.67.84, R4: 63.98.30.57, R5: 184.117.11.151, R6: 231.13.14.229, R7: 204.146.102.2, R8: 30.67.193.142, R9: 103.147.193.241, R10: 152.35.111.245, R11: 102.116.239.167, R12: 121.175.89.60, R13: 152.212.41.252, R14: 120.12.47.64, R15: 103.19.58.104, R16: 175.227.69.134, R17: 44.250.4.191, R18: 61.109.194.212, R19: 185.6.183.147, R20: 38.239.59.52, R21: 31.247.205.187, R22: 97.53.203.194, R23: 94.175.165.69, R24: 209.45.42.86, R25: 13.190.147.99, R26: 93.124.123.116, R27: 239.126.116.77, R28: 97.160.18.72, R29: 56.67.163.47, R30: 45.199.174.11, R31: 178.175.249.103, R32: 122.164.248.197, R33: 147.133.82.37, R34: 1.69.201.174, R35: 100.244.111.91, R36: 78.238.42.109, R37: 91.4.236.82, R38: 215.220.221.123, R39: 120.78.63.190, R40: 77.20.18.128, R41: 86.242.90.88, R42: 178.199.167.228, R43: 106.86.256.176, R44: 164.100.39.62, R45: 171.35.153.11, R46: 138.85.61.59, R47: 131.13.91.225, R48: 44.60.75.88, R49: 59.135.155.208, R50: 125.55.13.223}