目录
一:列表
列表是我们最常用的数据类型,通过列表可以实现最方便的存储修改等操作
定义列表 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()
........
继续阅读与本文标签相同的文章
《算法技术手册》一2.2 函数的增长率
转 自动化测试经验
-
猎户星空CEO傅盛:现在是AI发展最好时期,家庭服务机器人前景可期
2026-05-14栏目: 教程
-
5G远程驾驶和微公交首秀互联网大会
2026-05-14栏目: 教程
-
学宏程序编程,这些知识必不可少!
2026-05-14栏目: 教程
-
华为准备卖出“落后”的5G,多家美企极力竞争!任正非格局太大!
2026-05-14栏目: 教程
-
百度:飞桨深度学习平台已累计服务150多万开发者
2026-05-14栏目: 教程
