- dict,类似于map函数,里面有key和value,表示映射关系,使用{}创建
- 例:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
>>> print d['Adam']
95
>>> print d['Paul']
Traceback (most recent call last):
File "index.py", line 11, in <module>
print d['Paul']
KeyError: 'Paul'
if 'Paul' in d:
print d['Paul']
#下面是命令窗口使用get方法
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for key in d:
print key + ':', d[key]
- set,和c++(stl)里面set就一样了,里面只存key,访问方式和dict相同
- in运算符可以判断是否存在key
- 例:
- 注意set的声明方式
>>> s = set(['A', 'B', 'C', 'C'])
>>> print s
set(['A', 'C', 'B'])
>>> len(s)
- set,add(key),添加数据,不会添加重复的数据,key为参数,这里关键字为key
- set,remove(key),删除数据,有的才会删除,key为参数,key为可搜索关键字
- def,定义函数,后面跟函数名和参数名(变量无类型),然后执行代码块,执行到return时候返回
- 例:
- 注意def定义完之后加冒号,表示接下来的代码块为函数体,if,for和while同理
def square_of_sum(L):
s = 0
for key in L:
s = s + key * key
return s
print square_of_sum([1, 2, 3, 4, 5])
print square_of_sum([-5, 0, 5, 15, 25])
- def,可以返回多值,本质上是返回tuple(常量数组),
import math
def quadratic_equation(a, b, c):
t = math.sqrt(b * b - 4 * a * c)
return ( -b + t)/(2 * a), ( -b - t)/(2 * a)
print quadratic_equation(2, 3, 0)
print quadratic_equation(1, -6, 5)
- def,可以指定默认参数,但是必须在必须参数后面,类似于c++
- :,切片(Slice)操作符
- 1参数,L[:3]表示为L[0:3],另一个操作数默认为0。
- 1参数,L[-3:]位于冒号前可以用负数,等同于,负数加长度为起始值取到最后
- 1参数,L[3:]位于冒号前用正数,后面无参数,等同于从当前取到最后
- 2参数,L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。
- 3参数,L[0:3:1]表示,每多少个取一个,前两个参数表示范围。
- 例:
- 注:字符串可当作list,直接使用冒号切片操作来剪切字符串。
L = range(1, 101)
print L[:10]
print L[2::3]
print L[4:50:5]#每5个取一个·1
运行成功
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]