Python渗透测试编程技术:方法与实践(第2版)
上QQ阅读APP看书,第一时间看更新

3.7.1 列表

首先看一下列表。列表以左括号开始,右括号结束,样式为['Nmap','Kali','Openvas']。列表中数据项的类型无须相同,这一点对具有一些其他编程语言基础的读者来说,可能有些不习惯,不过这也是Python语言灵活性的体现。对一个列表而言,可以进行如下操作。

□ 创建列表。创建一个以tools为名的列表。

     >>>tools=['Nmap','Kali','Openvas']

□ 使用下标来访问和更新列表。只要使用下标就可以对列表中的元素进行读取和修改。

     >>>tools[0]
     'Nmap'
     >>>tools[2]='Metasploit'
     >>>tools
     ['Nmap', 'Kali', 'Metasploit']

□ 使用切片访问列表。使用下标只能访问单个元素,使用切片可以获取多个元素,进而得到一个新的列表。

     >>>tools[1:3]
     ['Kali', 'Metasploit']

在一个切片中,第一个整数是切片开始的下标,第二个整数是切片结束的下标,但是不包括这个下标。

□ 使用len()取得列表长度。

     >>>len(tools)
     3

□ 列表的连接和复制操作。列表支持“+”和“*”两个运算符,“+”表示连接运算符。例如将tools和列表['Sqlmap','Burpsuite']组成一个新的列表。

     >>> tools+['Sqlmap','Burpsuite']
     ['Nmap', 'Kali', 'Metasploit', 'Sqlmap', 'Burpsuite']

另外也可以使用“*”运算符来实现对列表的复制。例如将列表复制3次。

     >>>tools*3
     ['Nmap', 'Kali', 'Metasploit', 'Nmap', 'Kali', 'Metasploit', 'Nmap', 'Kali',
     'Metasploit']

□ in操作符与not in操作符,利用这两个运算符可以确定一个值是否在列表中。

     >>> 'Nmap' in tools
     True
     >>> 'Nmap' not in tools
     False
     >>> 'Office' in tools
     False
     >>> 'Office' not in tools
     True

□ 删除列表元素,Python中使用del语句来删除列表中的元素。例如,要删除列表中的'Kali',可以使用如下语句。

     >>>del tools[1]
     >>>tools
     ['Kali', 'Metasploit']

□ Python中还支持一些操作的函数。

常用的函数有:index(obj)在列表中查找指定值,如果列表中有这个值,就返回该值的下标;append(obj)在列表的末尾添加指定对象;insert(index, obj)将指定对象插入列表的index位置;remove(obj)删除列表中的特定值;sort()对列表中的元素进行排序。