Python 的数据collection

前几天些的一个查网站是否设置了我们的mx记录的脚步,用了些数据的collection:array 和 dictionary


#!/usr/bin/python                                                                                                                                                                

# using below SQL query on imht_ui DB                                                                                                                                            
# select accounts.id, accounts.accountname,account_domains.domain_id, domains.domainname from accounts,domains, account_domains where accounts.id=account_domains.account_id and\
 domains.id=account_domains.domain_id;                                                                                                                                           

import DNS

alldata='/root/SEG/EMEA_account_domain_MX_analysis/alldomains.dat'
prefilterdata='/root/SEG/EMEA_account_domain_MX_analysis/prefilter.dat'

subfix='trendmicro.eu'

status0=0
status1=1
status2=2

# Get all prefilter Accounts into an array                                                                                                                                       
fpre=open(prefilterdata)
prefilterAccounts={}
for line in fpre:
    prefilterAccounts[str.split(line)[1]]={}

#print prefilterAccounts                                                                                                                                                         


fall=open(alldata)
for line in fall:
    account=str.split(line)[3]
    domain=str.split(line)[7]
    if account in prefilterAccounts:
        prefilterAccounts[account][domain]=[]

#print prefilterAccounts                                                                                                                                                         

#DNS.DiscoverNameServers()                                                                                                                                                       
#reqobj=DNS.Request()                                                                                                                                                            

DNS.DiscoverNameServers()
reqobj=DNS.Request()

domainStatus={}

#!/usr/bin/python                                                                                                                                                                

# using below SQL query on imht_ui DB                                                                                                                                            
# select accounts.id, accounts.accountname,account_domains.domain_id, domains.domainname from accounts,domains, account_domains where accounts.id=account_domains.account_id and\
 domains.id=account_domains.domain_id;                                                                                                                                           

import DNS

alldata='/root/SEG/EMEA_account_domain_MX_analysis/alldomains.dat'
prefilterdata='/root/SEG/EMEA_account_domain_MX_analysis/prefilter.dat'

subfix='trendmicro.eu'

status0=0
status1=1
status2=2

# Get all prefilter Accounts into an array                                                                                                                                       
fpre=open(prefilterdata)
prefilterAccounts={}
for line in fpre:
    prefilterAccounts[str.split(line)[1]]={}

#print prefilterAccounts                                                                                                                                                         


fall=open(alldata)
for line in fall:
    account=str.split(line)[3]
    domain=str.split(line)[7]
    if account in prefilterAccounts:
        prefilterAccounts[account][domain]=[]

#print prefilterAccounts                                                                                                                                                         

#DNS.DiscoverNameServers()                                                                                                                                                       
#reqobj=DNS.Request()                                                                                                                                                            

DNS.DiscoverNameServers()
reqobj=DNS.Request()

domainStatus={}


1. 列表List
列表是元素的有序集合,列表元素由逗号分隔,方括号括起,列表中可以放任意对象(包括列表对象),列表是可变的可以添加和删除元素。
每个列表都是list类对象。可以通过help(list)查看列表所有属性和方法。
定义列表 shoplist=['apple', 'mango', 'carrot', 'banana']
添加元素 shoplist.append('rice') //添加元素后shoplist=['apple', 'mango', 'carrot', 'banana','rice']
删除元素 del shoplist[0] //删除第一个元素
获取元素 shoplist[1] //获取第二个元素'mango'
遍历所有元素 for item in shoplist
排序 shoplist.sort()
长度 len(shoplist)

2. 元组Tuple
元组与列表类似,也是有序元素的集合,元组元素由逗号分隔,圆括号括起,圆括号不是必须的,元组中可以放任意对象(包括元组对象),元组是不可变的。每个元组都是tuple类对象。可以通过help(tuple)查看元组所有属性和方法。
定义元组 zoo = ('python', 'elephant', 'penguin') 或 zoo = 'python', 'elephant', 'penguin'
获取元素 zoo[1] // 获取第二个元素'elephant'
遍历所有元素 for item in zoo
长度 len(zoo) // 3

特殊元组
(1)空元组 ()
(2)一个元素的元组 (item,),逗号必须要,与(item)表达式进行区分

3. 字典Dictionary
类似Java中的Hash,每一个元素都是一个key:value对,其中key必须是唯一且不可变对象,如strings。每个字典都是dict类对象。
定义字典 ab = {'Swaroop' : 'swaroop@swroopch.com', 'Larry' : 'larray@wall.org'}
获取元素 ab['Swaroop'] // 获取'swaroop@swroopch.com'
添加元素 ab['Guido']='guido@swroopch.com'
删除元素 del ab['Larry']
遍历元素 
for name, address in ab.items():
     print('Contact {0} at {1}'.format(name, address))

序列
列表、元组和字符串都是序列。序列的主要特征是拥有检测是否含有某元素的方法(及in和not in表达式)和索引操作。如
1. 列表
alist=['a', 'b', 'c']
'a' in alist //True
alist[1] // 获取'b'元素
2. 元组
atuple=('a', 'b', 'c')
'a' in atuple//True
atuple[1] // 获取'b'元素
3. 字符串
astr='abc'
'a' in astr //True
astr[1] // 获取'b'

索引可以是负数表示倒数第一个元素
如alist[-1] 表示倒数第一个元素'c'

切片操作
可以对序列做切片操作,获取序列的一部分,切片操作与索引操作类似,由冒号(:)分隔0到3个数[start:end:step],第一个表示起始位置,第二个数表示终止位置(不包括该位置元素),第三个数为步长。第一个数没有则默认为0,第二个数没有则默认为序列长度,第三个数没有则默认为1。如
alist = [1, 2, 3, 4]
alist[2:3] = [3]
alist[2:]=[3,4]
alist[:3]=[1,2,3]
alist[1::2]=[2,4]
注意:
1. 列表的切片仍是列表,即使只有一个元素,其他类似。
2. 可以通过alist[:]复制alist列表

集合
集合是简单对象的无序集合。集合具有in,issubset,issuperset,intersection等操作,具体方法及属性可以查看help(set)。
1. 集合定义:
aset=set(['a','b']) 
bset={'b','c'}
2. in操作:
'a' in aset // True
3. issuperset操作:
aset.issuperset(bset) // False
aset.issuperset({'a'}) // True
4. intersection操作:
aset.intersection(bset) 等价于 aset & bset // {'b'}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值