python常用数据类型
列表——list
list是一种有序的集合,可以随时添加和删除其中的元素,定义方式 [ ]。比如,列出班里所有同学的名字,就可以用一个list表示
list = ['小明','小红','小王']
print(list)
for i in list:
print(i)
1.用len()函数可以获得list元素的个数
len(list) #输出为3
2.用索引来访问list中每一个位置的元素,索引是从0开始的
list[0] #输出为小明
3.用appe()函数往list中追加元素到末尾,list是一个可变的有序表。
list.append('小李')
print(list) #输出为['小明', '小红', '小王', '小李']
也可以把元素插入到指定的位置,比如索引号为1的位置
list.append(1,'小李')
print(list) #输出为['小明', '小李', '小红', '小王']
4.用pop()方法删除list末尾的元素
list.pop() #输出为['小明', '小李', '小红']
删除指定位置的元素,用pop(i)方法,其中i是索引位置
list.pop(1) #删除索引为1的名字,输出为['小明', '小红']
5.修改别的元素,可以直接赋值给对应的索引位置
list[0] = '小唐' #修改索引为0的名字,输出为['小唐', '小红']
元组——tuple
tuple和list非常类似,定义方式(),但是tuple一旦初始化就不能修改,只能访问,所以没有appen()方法。
tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,如: t = (1, 2)。如果要定义一个空的tuple,可以写成()
只有1个元素的tuple定义时必须加一个逗号,,来消除歧义,如:t=(1,)
字典——dict
字典使用键-值(key-value)存储,定义方式{},具有极快的查找速度。
1.字典的访问
info = {'name':'李四', 'age':24, 'sex':'男','birthday':'1996-12-1'}
info['sex'] #男
2.通过key增加值或者修改值
info['father'] ='李明' #增加值
info['sex']='女' # 修改值
3.避免key不存在的错误,有两种办法,一是通过in判断key是否存在,二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value。
'name' in info #True
info.get('name')# True
- keys()获取字典中所有的键,values()获取字典中所有的值,items()获取字典中所有的键值对。
info.keys()
info.values()
info.items()
5.字典遍历
for k, v in info.items():
print(k, v)
集合——set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key,它是无序的。也使用add()添加元素,remove()移除元素。
set1 = {'清华', '北大','复旦' 211}
set1.add('985')
set1.remove('北大')
print(type(set1))
# 遍历
for x in set1:
print(x)
文件的读取
读文件
要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:
# with as 上下文管理器 不用手动关闭流
with open('./novel/threekingdom.txt', 'r', encoding='utf-8') as f:
data = f.read()
print(data)
写文件
写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:
#写入一个文件
tex = 'write a file'
with open('file.txt','w',encoding='utf-8') as f:
f.write(tex)
字符串
切片
对序列截取一部分的操作,适用于列表
text='123456789'
print(text[1:4]) #[起始位置:终止位置],从索引1开始取,直到索引4为止,但不包括索引4.输出为234
print(text[0:7:2]) #[起始位置:终止位置:步长] 左闭右开,输出为1357
print(text[::2]) #全切片的时候可以省略初始和终止位置
print(text[-7:-1:2])#倒数切片,输出为357
str.strip()去两端空格,字符串中间的空格不能去除,str..replace()替换对应的字符。
name = ' 2323 '
name = name.strip()
print(name) #输出为2323
price = 'erect'
price = price.replace('r','x')
print(price) #输出为exect
join()函数
连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。
seq1 = ['hello','good','boy','doiido']
print(' '.join(seq1)) #输出为hello good boy doiido
jieba分词
jieba分词有三种模式,分别为:精确模式,全模式,搜索模式
import jieba
text_name='我的家乡很美丽,山清水秀'
words=jieba.lcut(text_name)#精确模式 精确分词
words1=jieba.lcut(text_name,cut_all=True)#全模式 找出所有的分词
words2=jieba.lcut_for_search(text_name)#搜索模式