python day2
主要内容
1.列表、元组操作
2.字符串操作
3.字典操作
4.集合操作
5.字符串的编码与转码
1.列表、元组
通过列表可以对数据实现最方便的存储、修改等操作。
- 定义列表([ ])
names=['张山','李四','王二麻子']
- 可通过下标访问列表中的元素,下标从0开始计数;也可倒着数从-1开始计数。
- 切片操作
>>> names=['张山','李四','王二麻子'] >>> names[1:3] #获取下标1到3表示的元素但不包括3 ['李四', '王二麻子'] >>> names[0:3] #列表的下标从0开始计数 ['张山', '李四', '王二麻子']>>> names[:3] ['张山', '李四', '王二麻子'] >>> names[1:] ['李四', '王二麻子'] >>> names[1:-1] #-1表示最后一个元素的下标 ['李四'] >>> names[::2] #从下标为0开始获取元素,2代表每隔一个元素获取一个 ['张山', '王二麻子']
- 追加(append)
>>> names ['张山', '李四', '王二麻子'] >>> names.append('王五') >>> names ['张山', '李四', '王二麻子', '王五']
- 插入(insert)
['张山', '李四', '王二麻子', '王五'] >>> names.insert(2,'赵钱') #从下标为2的位置插入新元素 >>> names ['张山', '李四', '赵钱', '王二麻子', '王五']
- 修改
>>> names ['张山', '李四', '赵钱', '王二麻子', '王五'] >>> names[2]='孙李' >>> names ['张山', '李四', '孙李', '王二麻子', '王五']
- 删除(del 、remove、pop)
>>> del names[2] >>> names ['张山', '李四', '王二麻子', '王五'] >>> names.remove('王五') #删除指定元素 >>> names ['张山', '李四', '王二麻子'] >>> names.pop() #删除列表的最后一个元素 '王二麻子' >>> names ['张山', '李四']
- 扩展(extend)
>>> names ['张山', '李四'] >>> names2=['白富美','高富帅'] >>> names.extend(names2) #通过一个元组对另一个元组进行扩展 >>> names ['张山', '李四', '白富美', '高富帅']
- 统计(count)
>>> names ['张山', '李四', '白富美', '高富帅', '李四'] >>> names.count('李四') 2
- 排序(sort)
>>> names ['张山', '李四', '白富美', '高富帅', '李四'] >>> names.sort() #需要同种数据类型的数据才能进行排序 >>> names ['张山', '李四', '李四', '白富美', '高富帅']
- 翻转(reverse )
>>> names ['张山', '李四', '李四', '白富美', '高富帅'] >>> names.reverse() >>> names ['高富帅', '白富美', '李四', '李四', '张山']
- 获取下标(index)
>>> names ['高富帅', '白富美', '李四', '李四', '张山'] >>> names.index('张山') 4
元组
元组又称只读列表,一旦创建便不可修改。
>>> names=('小王','小李','小钱') >>> names ('小王', '小李', '小钱')
元组只有两个方法,一个是count,一个是index 。
2.字符串操作(特性:不可修改)
name.capitalize() 首字母大写 name.casefold() 大写全部变小写 name.center(50,"-") 居中显示name name.count('王') 统计王出现的次数 name.encode() 将字符串编码成bytes格式 name.endwith('li') 判断字符串是否以li结尾 name.find('A') 查找A,找到返回索引,找不到返回-1 format: >>> msg="my name is {},my age is {}" >>> msg.format('张三',18) 'my name is 张三,my age is 18' >>> msg="my name is {0},my age is{1}" >>> msg.format('李四',19) 'my name is 李四,my age is19' >>> msg="my name is {name},my age is {age}" >>> msg.format(age=20,name='王二') 'my name is 王二,my age is 20' >>> '|'.join(['赵','钱','孙']) '赵|钱|孙' maketrans >>> intab='abcd' >>> outtab='1234' >>> trantab=str.maketrans(intab,outtab) >>> str='hao baby come duty' >>> str.translate(trantab) 'h1o 212y 3ome 4uty'
3.字典操作
字典是一种key-value的数据类型(字典是无序的,key必须是唯一的,天生去重)
>>> info={'name1':'张三','name2':'李四','name3':'王二'} >>> info {'name1': '张三', 'name2': '李四', 'name3': '王二'}
- 增加
>>> info={'name1':'张三','name2':'李四','name3':'王二'} >>> info['name4']='赵钱' >>> info {'name1': '张三', 'name2': '李四', 'name3': '王二', 'name4': '赵钱'}
- 修改
>>> info {'name1': '张三', 'name2': '李四', 'name3': '王二', 'name4': '赵钱'} >>> info['name4']='孙李' >>> info {'name1': '张三', 'name2': '李四', 'name3': '王二', 'name4': '孙李'}
- 删除(del、pop、popitem)
>>> info {'name1': '张三', 'name2': '李四', 'name3': '王二', 'name4': '孙李'} >>> del info['name4'] >>> info {'name1': '张三', 'name2': '李四', 'name3': '王二'} >>> info.pop('name3') '王二' >>> info {'name1': '张三', 'name2': '李四'} >>> info.popitem() #随机删除 ('name2', '李四') >>> info {'name1': '张三'}
- 查找(get)
>>> info={'name1':'张三','name2':'李四','name3':'王二'} >>> 'name1'in info True >>> info.get('name1') '张三' >>> info.get('name4') #如果key不存在,不会报错 >> >>> info['name4'] Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> info['name4'] KeyError: 'name4'
- update
>>> info={'name1':'张三','name2':'李四','name3':'王二'} >>> dict2={'money':'renminbi'} >>> info.update(dict2) #将字典dict2增加到字典info中 >>> info {'name1': '张三', 'name2': '李四', 'name3': '王二', 'money': 'renminbi'}
- 循环dict
>>> info {'name1': '张三', 'name2': '李四', 'name3': '王二', 'money': 'renminbi'} >>> for i in info: print(i) name1 name2 name3 money >>> for i in info: print(i,info[i]) name1 张三 name2 李四 name3 王二 money renminbi >>> for i,j in info.items(): #会将dict转换成list,数据大时不要使用 print(i,j) name1 张三 name2 李四 name3 王二 money renminbi
4.集合
集合是无序的、不重复的数据组合,主要作用是去重、关系测试。
>>> s=set([1,1,2,2,3]) >>> s {1, 2, 3}
5.文件
文件的操作流程:
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件
>>> f=open('a.txt','r')
打开文件的模式如下:
r ,只读模式(默认)。
w,只写模式(不可读;不存在则创建文件;存在则删除文件内容,重新写入新内容)
a,追加模式(可读;不存在则创建;存在追加新内容)
“+”表示可以同时读写某个文件
r+,可读写文件。(可读可写可追加)
w+,写读。
a+,追加。
"U"表示在读取时,可以将 \r \n 自动转换成 \n (与 r 或 r+ 模式同使用)
rU
r+U
"b"表示处理二进制文件(Linux可忽略)
rb
wb
ab