#建立字典
items = [('name', 'hdb'), ('age', 42)]
d = dict(items)
print d #{'age': 42, 'name': 'hdb'}
d = dict(name = 'hdb', age = 42)
print d #{'age': 42, 'name': 'hdb'}
#清除字典的所有项
items = {'age': 42, 'name': 'hdb'}
print items.clear() #None
print items #{}
#浅拷贝
items = {'age': 42, 'name': ['hdb', 'whw', 'lxh']}
y = items.copy()
y['age'] = 23 #替换不影响原来的值
y['name'].remove('whw') #删除影响原始字典
print y #{'age': 23, 'name': ['hdb', 'lxh']}
print items #{'age': 42, 'name': ['hdb', 'lxh']}
#深拷贝
from copy import deepcopy
items = {'age': 42, 'name': ['hdb', 'whw', 'lxh']}
y = items.copy()
z = deepcopy(items)
y['age'] = 23 #替换不影响原来的值
y['name'].remove('whw') #删除影响原始字典
print y #{'age': 23, 'name': ['hdb', 'lxh']}
print items #{'age': 23, 'name': ['hdb', 'lxh']}
print z #{'age': 42, 'name': ['hdb', 'whw', 'lxh']}
#给定的键建立新的字典
d = {}.fromkeys(['age', 'name'])
f = dict.fromkeys(['age', 'name'])
print d #{'age': None, 'name': None}
print f #{'age': None, 'name': None}
#访问字典项
items = {'age': 42, 'name': ['hdb', 'whw', 'lxh']}
d = items.get('name')
print d #['hdb', 'whw', 'lxh']
#将字典所有项以列表方式返回,列表每一项表示为(键, 值)
it = {'age': 42, 'name1': 'hdb', 'name2': 'whw', 'name3': 'lxh'}
d = it.items()
print d #[('age', 42), ('name1', 'hdb'), ('name2', 'whw'), ('name3', 'lxh')]
#跟items一样的功能,不过iteritems()返回的是迭代器对象而不是列表
it = {'age': 42, 'name1': 'hdb', 'name2': 'whw', 'name3': 'lxh'}
d = it.iteritems()
print d #
d = it.items() #<dictionary-itemiterator object at 0x...>
print d #[('age', 42), ('name1', 'hdb'), ('name2', 'whw'), ('name3', 'lxh')]
#随机弹出列表的一项
it = {'age': 42, 'name1': 'hdb', 'name2': 'whw', 'name3': 'lxh'}
d = it.popitem()
print d #('age', 42)
print it #[('name1', 'hdb'), ('name2', 'whw'), ('name3', 'lxh')]
#设定字典中不存在的项,并返回与给定键相关联的值
it = {'age': 42, 'name1': 'hdb', 'name2': 'whw', 'name3': 'lxh'}
d = it.setdefault('name4', 'wy')
print d #wy
print it #{'age': 42, 'name4': 'wy', 'name1': 'hdb', 'name2': 'whw', 'name3': 'lxh'}
#利用一个字典更新另一个字典
it = {'age': 42, 'name1': 'hdb', 'name2': 'whw', 'name3': 'lxh'}
d = {'name4': 'wy'}
it.update(d) #wy
print it #{'age': 42, 'name4': 'wy', 'name1': 'hdb', 'name2': 'whw', 'name3': 'lxh'}
#返回字典中的值,返回值中列表可以包含重复元素
it = {'age': 42, 'name1': 'hdb', 'name2': 'whw', 'name3': 'whw'}
d = it.values()
print d #{'42,'hdb','whw','whw'}
#使用逗号输出
name1 = 'hdb'
name2 = 'whw'
name3 = 'lxh'
print name1, name2, name3 #hdb whw lxh
#模块导入函数
import somemodule 或者 from somemodule import somefunction 或者from somemodule import *
#elif是else if的简写
num = input('Enter a num: ')
if num > 0:
print 'The number is positive'
elif num < 0:
print 'The number is negative'
else:
'The number is zero'
#in 成员资格运算符
name = raw_input('what's you name: ')
if 'hdb' in name:
print 'yes'
else:
print 'no'
#同性(同一性而不是相等性)运算符,判断是否为同一个对象
x = 'hdb'
y = 'hdb'
print x is y
#字符串比较
print "hdb" > "whw" #False
#忽略大小写比较,lower返回小写, upper返回大写
print 'HDB'.lower() == 'hdb'.lower() #True
print 'HDB'.upper() == 'hdb'.upper() #True
#for循环
names = ['hdb', 'whw', 'lxh']
for name in names:
print name
#hdb
#whw
#lxh
#并行迭代
names = ['hdb', 'whw', 'lxh']
ages = [23, 21, 22]
for i in range(len(names)):
print names[i], 'is', ages[i], 'years old'
#hdb is 23 years old
#whw is 21 years old
#lxh is 22 years old
#并行迭代,把两个序列压缩在一起,返回一个元组的列表
d = zip(names, ages)
print d #[('hdb', 23),('whw', 21),('lxh', 22)]
#列表推导式,轻量级循环
t = [x*x for x in range(5)]
print t #[0, 1, 4, 9, 16]
f = [x*x for x in range(5) if x % 3 == 0]
print f #[0, 9]