代码改变世界

day3-list、字典、字符串、文件读取

2018-01-06 19:19  yemeiling  阅读(232)  评论(0)    收藏  举报

 

list 操作:

1、2种添加方式:
  append.('ddd') :在list末尾中添加元素
       insert(下标,’value‘):在指定的位置添加元素,如果下标不存在的时候,默认在末尾添加

2、仅有一种修改元素方法:

  stus[下标]=’value‘:直接找出下标进行赋值

3、删除元素4中方式

  pop(1): 删除小标为1的元素,不传指定下标表示删除最后一个
  remove('元素') :删除list中的元素,如果有多个,只删除一个
  del stut[下标] :删除指定下标对应的元素
  clear() :清空整个list

4、其他常用的方法:

  reverse() :反转list中元素的顺序
  sort() :对元素进行排序,默认是升序,如果是字符串,则按照字母大小排序
  sort(reverse=True): 按照降序
  a.extend(b):把b数组中的元素合并到a中

list 的循环和切片:

 1、循环list:

  names =[1,2,3,4,5,6,7,8]
       for name in names:
    print(name)

2、切片注意点:

  (1)切片,对数组的多个元素进行切片取值
  (2)切片是顾头不顾尾的,下标要加1
  (3)切片中有步长,表示隔多长取一次值
  (4)如果步长是负数的话从右往左取值,那么下标也要反过来写了.从-1开始,否则,取不到值

真假值:

非空即真---只要不是空,就是真的
非0即真---只要不是0,就是真的

 

字典
  1、字典 是key、value形式
  2、比list更方便取值、取值速度快
  3、字典是无序的

查询的2种方式:
  (1)d['key']---如果写了不存在的key,则报错
  (2)d.get('key')---不存在的key值时,不会报错,返回None
               d.get('key',‘默认’)---不存在的key值时,默认取值为‘’中的值
   (3)d.keys()----获取所有的key值
   (4)d.values()----获取所有的values

增加的2种方式:
  (1)d['key']=XXX-----直接通过赋值给key
  (2)d.setdefault('key','value')

修改-只有一种方式:
  (1)d['key']=XXX-----直接通过赋值给key,key存在的时候,就修改,不存在则新增

删除:
  (1)d.pop('key')--删除某个key对应的值
  (2)del d['key']
  (3)d.popitem---随机删除某个值
  (4)d.clear()---清空字典

判断key或value是否在字典里面:
  if ’key‘ in d.keys()---判断key是否在字典里面
  if ’value‘ in d.values()---判断value是否在字典里面

循环字典,取值
(1)直接循环字典,打印的是key值
    for k in d:
    print(k)
(2)同时取到key/value的值,但这种是把key和value值都转成了list二维数组,导致取值速度慢
    for k,v in d.items();
    print(k,v)
(3)这种方法保留了字典取值快的特性,性能好
    for k in d;
    print(k,d.get(k))

强制类型转换:
  int() #转成int 类型
  str() #转成 字符类型
  list() #转成list类型

字典的嵌套:
  字典中嵌套字典的情况
  字典中嵌套list的情况
  list中嵌套字典的情况
取值需要注意点:
  1、字典是没有下标的,只能根据key来取value
  2、list是有下标的,通过下标进行取值

元祖:
  1、形式--a(1,2,3,4,5,6)
  2、元祖也是list,只是元祖是不可变的,不能修改元祖都值
元祖的2个方法:
  a.count('4')---查找值=4的个数有多少个
  a.index('5')---返回值对应的下标

可变变量和不可变量变量一旦创建好了就不能修改了):

  可变变量:list,字典
  不可变变量(:字符串、元祖
       字符串的方法都不会改变原来的字符串的值

字符串常用的方法:

 

  strip() 方法:默认是去掉两边的空格和换行符
  lstrip() 方法 #默认是去掉左边的空格和换行符
  rstrip() 方法 #默认是去掉右边的空格和换行符

 

  count('t')方法:查找某个字符或字符串在字符串中出现的次数
  find('t')方法:找到字符串,返回它的下标,如果不存在,则返回-1
  index('t') 方法:找到字符串,返回它的下标,如果不存在,则报错

 

  upper() 方法:把所有的字母变成大写
  lower()方法:所有的字母变成小写

  endwish(‘.xls’)方法:判断字符串是以什么结尾的
  startwish(‘’)方法:判断字符串是以什么开头的

 

  format()方式:将字符串格式化
  format_map(d):将字符串格式化,传进去的是一个字典

 

  replace('t','y')方法:将字符串替换,将t替换成y
  isdigit():判断是否为数字
  islower(): 判断是否为小写字母
  issupper(): 判断是否为大写字母

 

  split(','): 以 什么进行分割字符串,并保存成list格式
  split(): 如果不写,则按照空格进行分割字符串
  ‘,’.join(d):连接字符串d,通过字符把字符串拼接起来,int类型不能连接起来

文件读写:

 

  f = open('文件','a+',encoding='utf-8') # 打开文件
  f.seek(0) # 把文件里的内容移到前面,方便后面的读出来,移动指针,只对读好使,对写不好使

  读取文件:
     f.read() #读取文件,组成一个字符串
    f.readline() # 一次只读一行的内容
    f.readlines()# 读取文件中所有内容,把文件里面的每一行的内容放到一个list 中去

       写文件:
    f.write('bbbbb'+'\n')# 字符串写到文件中去
    f.write(names) # 写的时候,只能传入的一个字符串
    f.writelines(names) # 写的时候,传入一个可迭代的就行了,比如数组、字典等

    

    f.truncate() #清空文件内容
    f.close() # 关闭文件
    f.tell() #查看当前文件指针的位置

    文件打开有3种方式,读、写、追加
  读r、r+方式:
    读 r 如果打开文件的时候没有指定模式,则默认只读模式
    读写模式 r+,只要沾上r,文件不存在的时候会报错
  写 w方式:
    只要沾上W,那么就会把原有的文件进行清空覆盖
  追加 a
    不改变原有的文件内容,在文件中追加内容

  当w/a进行写或追加,且后面进行读的时候,是从后面读的,所以,会出现读不出来的情况