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

posted @ 2017-11-22 10:12  会飞的太阳  阅读(129)  评论(0编辑  收藏  举报