文章目录
序列
序列包括:字符串、列表、元组
序列的两个特点:
索引操作符 [ num ]
从序列中抓取特定项目
索引可以是正数也可以是负数
做负数时位置是从序列尾开始计数
例
str1 = ‘abcd’
str1[0] = a
str1[-1] = d #-1 是字符串最后一个元素
切片操作符 [ num1 : num2 : num3]
获取序列的一部分(切片)
切片操作符是序列后跟一个带有冒号的方括号及 [ num1 : num2]
num1是切片开始的位置,num2为切片结束的位置但不包括这个位置,num3是步长值,默认为1可省略
若没有num1时,序列从首位置开始切片
若没有num2时,切片截止到尾位置
切片操作符中首个冒号不可省略
基本操作
操作符 | 意义 |
---|---|
len() | 求序列长度 |
+ | 连接两个序列 |
* | 重复序列元素 |
in | 判断元素是否在序列中 |
max | 返回最大值 |
min | 返回最小值 |
cmp(tuple1,tuple2) | 比较序列值是否相同 |
注:
in操作为真时返回 True 假为False
cmp()操作 前一个序列值大于后一个序列值时为1,小于时为-1,等于时为0
数据类型
数字
整型int
整数int的范围是: -2,147,483,648 到 2,147,483,647
例程:
>>> num= 2147483647
>>> type(num)
<type'int'>
长整型long
长整型long可以存储任意大的整数
为了区分整型与长整型,需在数字后面添加‘L’或者‘l’
例程:
>>>num = 9999999999999999999
>>>type(num)
<type'long'>
>>>num = 2333L
>>>type(num)
<type'long'>
浮点型float
>>> f1 = 0.1
>>> type(f1)
<type'float'>
复数型complex
python对复数提供内嵌支持
字符串
使用引号包含数字、字母、符号的集合
Strval = 'Great'
Strval = ''Great''
Strval = '''Great'''
三重引号制作字符串
字符串的索引
a = 'ABCD'
b ='abcd'
a[0] = A
b[0] = a
a[0]+ b[0] = Aa
字符串的切片
a = 'abcdefg'
a[1:4]
<bcd> #取的是字符串第二个开始取字符到第五个字符前一个字符
a = 'abcdefg'
a[0:6:2]
<ace> #在第1个到第6个字符中每隔两个取一个字符
负数也是这个道理
列表[ ]
-
列表用方括号规范元素。元素可以是字符串也可以是数字,元素之间用逗号隔开。
-
列表list是处理一组有序项目的数据结构,在列表中存储有序的项目数据。
-
列表存储的项目数据是可变的
-
可对列表进行索引和切片
-
对列表元素进行赋值时,其地址是不变的
创建列表
- 空列表
list = []
- 单元素列表
list = [element]
- 一般列表
List1 = ['family','friend','money']
List2 = [1,2,3,4,5]
List3 = ["str1","str2","str3"]
列表的操作
取值 | - |
---|---|
切片 | 索引 |
添加 |
---|
list.append( ) |
删除第一个元素 | |
---|---|
list.remove( list[ ] ) ) | del( list[ ] |
移除列表中最后一个元素(默认),并返回该元素的值 |
---|
list.pop([index=-1]) |
将对象插入列表 |
---|
list.insert(index, element) |
修改元素 |
---|
list[num] = x |
反向列表中元素 |
---|
list.reverse() |
对原列表进行排序 |
---|
list.sort(cmp=None, key=None, reverse=False) |
统计元素出现的次数 |
---|
list.count(element) |
元组转换成列表 |
---|
list [tuple ] |
列表扩展列表 |
---|
list.extend(list[num1,num2]) |
定位某元素第一次出现的位置 | - |
---|---|
list.index(element) | - |
查找 |
---|
var in list |
元组()
- 元组与列表类似,但是元组与字符串一样不可修改
- 元组通过逗号将括号内的项目隔开,通常用在使语句和自定义函数唯一,即被使用的元组的值不变
- 在对元组元素进行赋值时,赋值前后其地址是不同的
创建元组
- 空元组
由一对空的圆括号组成
例:
empty = ()
- 单个元素元组(逗号不可省略)
single = (2,)
- 一般元组
general = ('family','friend','money')
general = ('family','friend','money')
general[1] = 'girlfriend'
由于元组内容固定,不可通过上述操作对元组内容进行更改
元组和字符串一样属于序列类型,可通过索引和切片操作,这里不过多解释。
元组的拆分
定义一个元组,元组内有n个元素,通过元组的拆分可将这n个元素分别赋予n个变量
列表和元组能实现对数据的索引和切片
input:
list = ['HBX_1024','24','male']
output:
list[0] = 'HBX_1024'
但是不能直接实现
list[name] = 'HBX_1024'
即使遍历列表也达不到映射的效果
input:
list = ['name','age', 'gender']
list1 = ['HBX_1024','24','male']
zip(list,list1)#遍历列表,将两个列表变为元组
output:
[('name','HBX_1024'),('age','24'),('gender','male')]
这是就需要用字典来解决此类问题。
字典{ }
- 字典是python中惟一的映射类型(哈希表)
- 字典存储的数据是无序的
- 字典对象是可变的,但是字典的键 key 必须使用 不可变对象
- 字典中可使用不同类型的键值
- values() 或者 keys() 返回值列表或者键列表
- items() 返回包含键值对应的元组
形式:
dic = {key1 : 'a' ,key2 : 'b' ,key3 : 'c' ,key4 : 'd' }
dic[key1] = a
dic[key2] = b
dic[key3] = c
dic[key4] = d
字典的操作
更新和删除:
-
直接用键值访问更新;内建的update()方法可以将整个字典的美容拷贝到另一个字典中。
del dict['a']#删除字典中键值为a的元素
dic.pop('a')#删除并返回键值为‘a’的元素
dic.clear()#删除字典所有的元素
del dict#删除整个字典
-
内建函数
- type()#查看类型
- str()#生成大字符串
- cmp()#依次比较字典的大小、键、值
-
工厂函数dict()
- 例如:dict(zip(‘x’,‘y’),(1,2)) 或 dict(x = 1,y = 2)
- {‘y’:2,‘x’:1}
- 使用字典生成字典比用copy慢,推荐使用copy()
常用操作 | – |
---|---|
len() | 长度 |
hash() | 判断对象是否可做键 |
dict.clear() | 清空字典 |
dict.fromkeys(seq,val = None) | 以seq中的元素为键创建并返回一个字典,val 为默认值 |
dict.get(key,default = None) | 返回key的value,若不存在返回default指定值 |
dict.has_key(key) | 判断字典是否存在key,可用in,not in代替 |
dict.items() | 返回键值对元组的列表 |
dict.keys | 返回字典中键的列表 |
dict.iter*() | – |
dic.pop(key[,default]) | – |
dict.setdefault(key,default = None) | – |
dict.update(dic2) | 将dict2中的键值对添加到字典dict中 |
dict.values() | 返回字典中所有值的列表 |
help
对于不清楚函数的意义和用法可以用help( ) 来查询。