1.dictionary
功能类似于哈希表
api调用:
my_dict = {"THU":100,"USTC":95,"ZJU":91,"SJTU":93,"SCUT":88}
print my_dict.items() //输出整个dictionary
print my_dict.keys() //输出所有的键值
print my_dict.values() //输出所有对应值
even_squares = [x**2 for x in range(2,11) if x%2==0] //it will contain 4,16,36,64,100
2.Set
Python中的set和Java中的set接口很类似,最重要特性就是set内的数字不会重复
2.Tuple
Tuple中的元素是不可更改的
如Tup = (1,2,3)
这时候的Tup中的元素就确定下来了,不会更改。
3.List
list中的元素可以自由更改
如lis = [1,2,3,4,[,5,6],'t']
常见对list操作的api有:
list.insert(index, item) 插入某个item到list[index]
list.append(item) 将item插入到list的尾部
list.pop() 将list的尾部元素删除
list.pop(index) 将list[index]删除
list的切片操作(深拷贝)
my_list[start:end] 返回一个my_list子集:[ my_list[start], my_list[start+1] ... my_list[end-1] ]
my_list[start:end:stride] 返回一个my_list子集:[ my_list[start], my_list[start+stride], my_list[start+2stride], .....
my_list[::-1] 返回一个my_list的reverse版本
my_list[-1:-2] 返回一个my_list的倒数第二个元素
4.函数式编程:
e.g. :
lambda x: x % 3 == 0
等同于
def by_three(x):
return x % 3 == 0
5结合:
squares = [x**2 for x in range(1,11)]
print filter(lambda x: x in range(30,71),squares)
Output:36:49:64
another example:
garbled = "IXXX aXXmX aXXXnXoXXXXXtXhXeXXXXrX sXXXXeXcXXXrXeXt mXXeXsXXXsXaXXXXXXgXeX!XX"
message = filter(lambda x: x!='X',garbled)
print message
Output: I am another secret message!