2017/3/4 python学习日记

Dict遍历=分行打印

d = dict(a=1, b=2, c=3)

for k, v in d.items():


print k, v

# a 1

# c 3

# b 2

通过这个方法实现了headers的多行打印

 

response = requests.get(url_ip)
print(‘<<<headers>>>’)
w = response.headers
for k,v in w.items():
x = ‘:’
print
k,x,v

 

key value之间加了冒号。。但是有空格不舒服

 

dict.copy()是一个浅拷贝,当遇到字典或者列表时,将不能完全拷贝。使用copy模块的deepcopy()方法。

import copy

 

dict1 = {‘a’: [1, 2], ‘b’: 3}

dict2 = dict1

dict3 = dict1.copy()

dict4 = copy.deepcopy(dict1)

 

dict1[‘b’] = ‘change’

dict1[‘a’].append(‘change’)

 

print dict1 # {‘a’: [1, 2, ‘change’], ‘b’: ‘change’}

print dict2 # {‘a’: [1, 2, ‘change’], ‘b’: ‘change’}

print dict3 # {‘a’: [1, 2, ‘change’], ‘b’: 3}

print dict4 # {‘a’: [1, 2], ‘b’: 3}

 

 

使用get, pop来获取/删除key

 

首先,dict[key] 与 delete dict[key]也可以获取/删除key。但是key不存在时,会引发 KeyError 异常。为了避免引发异常可以使用get和带defaut参数的pop

get(key[, default])

如果key在字典中,返回对应的value, 否则返回default。所以从来不会引发异常。

pop(key[, default])

如果default未设置,则如果key不在字典中,删除key将引发异常。使用时加上default。

 

 

import string

s = string.ascii_lowercase

e = enumerate(s)

print s

print list(e)

输出为:

?

1

2

abcdefghij

[(0, ‘a’), (1, ‘b’), (2, ‘c’), (3, ‘d’), (4, ‘e’), (5, ‘f’), (6, ‘g’), (7, ‘h’), (8, ‘i’), (9, ‘j’)]

在同时需要index和value值的时候可以使用 enumerate。

 

 

在python中可以通过in和not in关键字来判读一个list中是否包含一个元素

theList = [‘a’,’b’,’c’]

if ‘a’ in theList:

print ‘a in the list’

 

if ‘d’ not in theList:

print ‘d is not in the list’

 

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注