目录

一:列表

二:元组

三:字典

四:字符串

五:集合

六:文件操作


一:列表

列表是我们最常用的数据类型,通过列表可以实现最方便的存储修改等操作

定义列表 names=[\'xiaom\',\'xiaod\',\'xiaos\']

1.1 增

  • names.append(\'xiaob\')
  • names.insert(index,内容)
  • names.extend(旧列表)

1.2 删

  • del name[1]      删除列表中的指定元素
  • del names         删除整个列表
  • names.remove(\'xiaod\')    删除指定元素
  • names.pop(index) 删除指定元素,默认最后一个,返回被删除值

1.3 改

  • names[1]=\'xiaow\'
  • names[1:3]=[\'xiaod1\',\'xiaom1\']

1.4 查

  • names[1:4]      包左不包右
  • names[:-1]       -1默认是最后一个元素的下标
  • names[::2]        2代表每隔一个元素取一个

1.5 骚

  • names.index(\'xiaod\')      获取特定元素的下标
  • names.count(\'xiaod\')      统计\'xiaod\'在整个列表中出现的次数
  • names.sort()                   排序(参数reverse默认是False)
  • names.reverse()             反转
  • len(names)                     返回列表的长度/元素的个数,从1开始长度

二:元组

元组和列表差不多,只不过存放的是不可修改的,别号\"只读列表\"

定义元组 names=(\'xiaom\',\'xiaod\',\'xiaos\'),进行查的操作

如果定义的列表只有一个元素的话 names=(\'xiaod\',)

  • names.count(\'xiaod\')   统计\'xiaod\'出现的次数
  • names.index(\'xiaod\')    返回索引
  • names[:]

三:字典

字典是一种key-value的数据类型,通过对key进行hash运算,根据运算的结果决定value的存储地址,

所以字典是无需存储的,且key是可哈希的不可变类型(数字,字符串,元组)

字典是除列表之外Python之中最灵活的数据结构类型.  列表使用偏移,字典使用

创建字典 dict1={\'name\':\'xd\'}

3.1 增

  • dict1[\'age\']=18
  • dict1.setdefault(\'ages\',21)  没有键的话添加,有的话无影响

3.2 删

  • dict1.clear()
  • del dict1[\'name\']
  • del dict1
  • dict1.pop(键)   返回被删除的值 
  • dict1.popitem() 默认删除最后一个返回元组

3.3 改

  • dict1[\'name\']=\'xiaod2\'
  • dict2={\'name\':\'xiaod2\',\'age\':21}  dict1.update(dict2)

3.4 查

  • dict1.keys()      返回键
  • dict1.values()  返回值
  • dict1.items()   返回键值对组成的元组
  • dict1[\'name\']    返回值

3.5 骚

  • 遍历
#方法一
for key in names:
    print(key,names[key])
#方法二
 for k,v in names.items():先把dict转换为列表
    print(k,v)
  • sorted(names)   返回一个有序包含key的列表
  • 多级字典进行嵌套保存信息

四:字符串

定义字符串 names=\'abcdefg0123456ABCDEFG0123\'

4.1 内置方法

  • names.center(50,\'-\')           字符串居中对齐,用-填充 (ljust左对齐  rjust 右对齐)
  • names.count(\'a\')                统计指定字符出现的次数
  • names.find(\'abc\')               返回大串包含小串的索引值,否则返回-1
  • names.index(\'abc\')            返回大串中包含小串的索引值,不在会报错
  • names.isdigit()                   判断是否只包含数字,返回True/False
  • names.isnumeric()            判断是否只包含数字字符,返回True/False
  • names.is ()                    判读每个串中子串首字符是否大写
  • names.strip()                     去除空格 \\t \\n (lstrip左除 rstrip右除)
  • names.upper()                   串中的小写变成大写
  • names.lower()                    串中的大写变成小写
  • names.split(\'_\')                   以_为分隔符分开大串返回列表
  • names.replace(\'a\',\'b\',\'次数\') 把大串中的a换成b几次
  • names.startswith(\'ab\')        判断是否以某个串开头
  • names.format{}                   格式化输出字符串
str2=\"my name is {name} ,and age is {age}\"  
print(str2.format(name=\'xd\',age=20))

4.2 骚

  • print(\'hell\'*2)             重复输出字符串
  • print(\'hellowordl\'[:])    切片和列表一样
  • print(\'el\' in \'hello\')       in 成员运算符
  • print(\'%s is a good student\'%\'xd\')  %格式化字符串
  •  +/join字符串拼接
a=\'123\'
b=\'789\'
c=\'abc\'
d1=a+b+c
print(d1)
#+效率低,用join
d2=\'\'.join([a,b,c])
print(d2)

五:集合

集合是一个无序,不重复的数据组合,主要作用

  • 去重,把列表变成集合就自动去重了
  • 关系测试,测试两组数据之前的交并补等关系    

应用:最简单的去重方式

       list1=[1,2,3,4,1,23,4]

       print(list(set(list1)))

5.1 创建集合

       s=set([3,5,9,10])    通过集合的工厂方法set()创建

       s=set(10)

5.2 访问集合

      由于集合(字典)本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或者使用in not in来访问或判断元素

      for i in s: print i

      print(1 in s)

5.3 更新集合

      s.add(\'1\')

      s.update(\'12\')   #添加多个元素

      s.remove(1)     #删除某个元素

      del s                #删除整个集合

5.4 骚

      s1=set([3,5,9,10])  s2=set([3,5,9,10,\'h\',\'e\',\'l\'])

      s1.union(s2)    ==   s1|s2     #s1和s2的并集

      s1.intersection() ==  s1&s2  #s1和s2的交集

      s1.deiiference() ==   s1-s2  #s1和s2的差集

      s1.symmetric_difference(s2) ==s1^s2  #s1和s2的对称差集( 元素属于s1,s2,但不同时属于s1和s2)

六:文件操作

6.1 文件操作流程

  • 打开文件,把文件句柄赋值给一个变量
  • 通过句柄对文件进行操作
  • 关闭文件

6.2 文件操作方法

  • f.read()                #把文件读到内存中,大文件不要这样用
  • f.readline()          #一行一行的读取
  • f.readlines()        #读取所有的行
  • f.seek(index)       #句柄操作定位到index
  • f.tell()                   #输出当前的句柄操作定位符
  • f.truncate(index)  #把index前面的截断,默认从0开始
  • f.flush()                #刷新缓冲区,把缓冲区的东西写入文件

6.3 文件读取(推荐)

#在第三行后面加上:\'end 3\'
count = 0
for line in f:
    if count==3:
         line=\'\'.join([line.strip(),\'end 3\'])
    print(line.strip())
    count+=1
#进度条
import time,sys
    sys.stdout.write(\'*\')
    sys.stdout.flush()
    time.sleep(0.1)

6.4 with语句

     为了避免打开文件后忘记关闭,可以通过with语句,当with代码块执行完毕之后,内部会自动关闭并释放文件资源

with open (\'1.txt\',\'r\') as f1,open(\'2.txt\',\'r\') as f2:

      f1.read()

      f2.read()

      ........

      

 

 

 

 

收藏 打印