目录
列表
1.简介
列表就是可变的数组,之所以是可变的是因为随随便便就可以增加和减少操作。形式如下:list = []。 访问列表主要是索引和切片,索引从左到右第一个是0,从右到左第一个是-1;切片包含起始的数字,但不包含末尾的数字。
Example:(访问列表两种方式,单个元素访问通常下标,多个元素访问通常切片。)
list=[1,2,9,4]
print list[0],list[1:3]
print list[::-1] 步长切片
Result: 1 [2,9]
[4,9,2,1]
2.追加
Example1:(单一追加)
dota=[1,2,3]
dota.append(9)
print dota
Result: [1,2,3,9]
Example2:(列表和列表之间追加)
dota1=[1,2,3]
dota2=[4,5,6]
dota1.extend(dota2)
Result: [1,2,3,4,5,6]
Example3:(+连接,*重复)
dota1=[1,2,3,4]
dota2 = [3,4]
dota3 = dota1+dota2
dota4 = dota2*2
print dota3,dota4
Result:[1,2,3,4,3,4] [3,4,3,4]
3.插入指定位置
Example:
dota=[1,2,3]
dota.insert(2,9)
print dota
Result: [1,2,9,3]
4.删除列表元素
Example1:(删除末尾元素)
dota=[1,2,3]
dota.pop()
print dota
Result: [1,2]
Example2:(删除指定位置的元素)
dota=[1,2,3]
dota.pop(0)
print dota
Result: [2,3]
Example3:(del通过下标删除序列元素)
dota=[1,2,3]
del dota[0]
print dota
Result: [2,3]
Example4:(remove删除指定元素,ps用于移除列表中某个值的第一个匹配项)
dota=[1,3,4,5,6,4]
dota.remove(4)
Result:dota[1,3,5,6,4]
5.统计列表元素
Example:(统计列表中元素出现的次数)
dota=[1,2,3,4,4,4,4,4]
num=dota.count(4)
print num
Result: 5
6.查找元素返回其第一次出现的下标
Example:
dota = [1,1,2,3,2]
num=dota.index(2)
print num
Result: 2
7.列表其它技巧
Example1:列表嵌套列表,形成二维数组
s = ['python', 'java', ['asp', 'php'], 'scheme']
s[2][1]
Result: php
Example2:列表中数据类型可以混杂
s = ['python',1,True]
Example3:其他数据类型转换成列表(也可以说是列表的其他写法)
d=list('abcd')
print d,type(d)
Result: ['a', 'b', 'c', 'd']
元组
1.简介
元组是不可变数组,因此当定义一个tuple时候它的元素就必须被确定下来,不能改变;list和tuple区别主要表现在list可以变能给下标赋值修改,而tuple不能;因此tuple不可变代码更安全,如果可能,能用tuple代替list就尽量用tuple,比如你写了一个API,然后要交给别人来对接,但是你想保证你的代码的安全以及不想让别人动你的代码,此时tuple就是相对合适的选择。
2.查找元素返回其第一次出现的下标
Example:
dota = (1,1,2,3,2)
num=dota.index(2)
print num
Result: 2
3.统计元组中元素出现的次数
Example:
dota=(1,2,3,4,4,4,4,4)
num=dota.count(4)
print num
Result: 5
4.元组其它技巧
Example1: 其他类型转换成元组
a=[1,2,3,4]
b=tuple(a)
print b
Result:b=(1,2,3,4)
Example2: 区别点
a= (4) 类型type(a)是int
a=(4,) 类型type(a)是tuple
字典
简介:
格式如下:d = {key1 : value1, key2 : value2 }方法.keys()返回字典所有键的列表,.items()返回字典所有值的列表。
常用方法:
Example1:访问元素
a={'1':'dota','2':'dota2'}
a['1']
Result:‘dota’
Example2:
a={'1':'dota','2':'dota2'}
a[a.keys()[0]]
Result:dota
Example3:
a.items显示所有元素
for k,v in d.iteritems():迭代器生成
print k ,v
Example4:
dict(zip(‘abc’,range(2)))字典生成
{k:v for k,v in zip(“abc”,range(3))}生成字典
运算符
+ 连接操作
* 重复操作
in 如果在指定的序列中找到值返回True
not in 检查一个值是否出现在一个序列中
is ,not is 判断指针是否相同(可以连接成比较两个字符是否相同的对象)
& 交集
| 并集
- 差集
^ 对称差集(不会同时存在)
and 和
or 或者(可以提供默认值)
/ 表示 浮点数除法,返回浮点结果;// 表示整数除法。
不支持a++ ++a,因为他把+看成单目运算符
is和==区别:
is判断的是a对象是否就是b对象,是通过id来判断的。
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。
例如:
In [1]: d={'sf':'ok','sk:':'not ok'}
Out[2]: {'sf': 'ok', 'sk:': 'not ok'}
In [3]: dd =d.copy()
In [4]: d is dd
Out[4]: False
In [5]: d == dd
Out[5]: True
Example:
x=None
y=x or 0
y
0
集合
Example:
>>> li=['a','b','c','a']
>>> se =set(li)
>>> se
set(['a', 'c', 'b'])
>>>list(set(['a', 'c', 'b']))