Python学习第二天

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
  1. 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)#搜索模式

你可能感兴趣的:(Python学习第二天)