一、 数据类型
# 一、 数据类型
# 1.1 列表
# 1.1.1 基础
list = ['1',2,3,4]
list[0] = 111
del list[1]
print(list[0:1]) # 左闭右开
print(list[1:])
list[2:] = ['你','好']
print(list)
list[2:2] = [999] # 插入
print(list)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
[111]
[3, 4]
[111, 3, '你', '好']
[111, 3, 999, '你', '好']
# 1.1.2 常用方法
# 添加 append
list = [1,2,3,4,5]
box = 111
list.append(box)
print(list)
1
2
3
4
2
3
4
[1, 2, 3, 4, 5, 111]
# 清空 clear
list = [1,2,3,4,5]
list.clear()
print(list)
1
2
3
2
3
[]
# 计数 count(某元素出现次数)
list = [1,2,3,4,5,5,5,5,5]
num = list.count(5)
print(num)
1
2
3
2
3
5
# 扩展 extend
list1 = ['你好']
list2 = ['Python']
list1.extend(list2)
print(list1)
1
2
3
4
2
3
4
['你好', 'Python']
# 查找 index
list = ['Python', 'Token', 'Java']
index = list.index('Token')
print(index)
1
2
3
2
3
1
# 插入 insert
list = [1,2,3,4,6]
list.insert(4,555)
print(list)
1
2
3
2
3
[1, 2, 3, 4, 555, 6]
# 弹出 pop
list = [1,2,3,4,999]
list.pop()
print(list)
1
2
3
4
2
3
4
[1, 2, 3, 4]
# 删除第一个“指定值”元素 remove
list = ['Python','Java','Javascript']
list.remove('Python')
print(list)
1
2
3
4
2
3
4
['Java', 'Javascript']
# 翻转 reverse
list = [1,2,3,4,5,6]
list.reverse()
print(list)
1
2
3
4
2
3
4
[6, 5, 4, 3, 2, 1]
# 列表推导式
[表达式 for 变量 in 可迭代对象 if 条件]
1
例如:
[[i, -i] for i in range(A.shape[0])]
1
# 排序 sort
num = [1,9, 11, 3, 10]
# num.sort(key= lambda x: x*(-1))
num.sort(reverse=False)
print(num)
1
2
3
4
2
3
4
[1, 3, 9, 10, 11]
# 1.2 元组
tuple 一旦初始化就不能修改
注意:若元组只有一个元素,只能(ele,)这么写
tuple1 = (1,2,3,4)
print(tuple1)
1
2
3
2
3
(1, 2, 3, 4)
# 1.3 字符串
# 1.3.1 基础
str = '123123'
1
# 1.3.2 常用方法
# 切片
str = '123456'
print(str[0:3])
1
2
2
123
# 格式化 format
str = "广元有{0},{2},{1}"
list = ["蒸凉面","剑门关","武则天"]
res = str.format(*list)
print(res)
1
2
3
4
2
3
4
广元有蒸凉面,武则天,剑门关
str = "广元有{food},{scenery},{people}"
dict = {"food":"蒸凉面","scenery":"剑门关","people":"武则天"}
res = str.format(**dict)
print(res)
1
2
3
4
2
3
4
广元有蒸凉面,剑门关,武则天
PI = 3.1415926
str = "{:.4f}".format(PI)
print(str)
1
2
3
4
2
3
4
3.1416
# 查找特定值 find
find(self, sub, start=None, end=None)
str = '一庭春雨,满架秋风'
res1 = str.find("春雨",1,5)
res2 = str.find("夏雨")
print(res1,res2)
1
2
3
4
5
6
2
3
4
5
6
2 -1
# join
jobs = ['lawer','teacher',"player"]
str = ' and '.join(jobs)
print(str)
1
2
3
4
2
3
4
lawer and teacher and player
# 转大小写 lower upper
str = 'Such a beautiful girl'
res1 = str.lower()
res2 = str.upper()
print(res1,'\n',res2)
1
2
3
4
5
2
3
4
5
such a beautiful girl
SUCH A BEAUTIFUL GIRL
# 替换 replace
replace(self, old, new, count=None) return newStr
注意:
- 原字符串不变,返回替换后的字符串
- 方法 replace 用于将字符串中的某子串进行替换,默认替换指定的所有子串。old 为旧的字符串,new 为新的字符串,count 为替换的次数。
word = '博文'
newWord = 'Adam'
str = '博文天天睡觉不洗澡,博文他妈天天日决他,博文他妈天天劝博文他爸'
newStr = str.replace(word,newWord)
print(newStr)
1
2
3
4
5
6
2
3
4
5
6
Adam天天睡觉不洗澡,Adam他妈天天日决他,Adam他妈天天劝Adam他爸
# 分割 split
split(self, sep=None, maxsplit=-1) maxsplit 为最多分隔的次数,-1 表示全部分隔。
str = '天津、上海、广州、广元'
citys = str.split('、')
print(citys)
1
2
3
4
2
3
4
['天津', '上海', '广州', '广元']
# 移除开头结尾指定字符 strip
str = " a "
newStr = str.strip(" ")
print(newStr)
1
2
3
4
2
3
4
a
# 字符替换 translate
translate(self, table)
方法 translate 根据由 maketrans 函数生成的对照表 table 完成字符替换,table 是对照表,是由 maketrans 函数生成。
注意:
- 要求对照表字符 len 一样(扯淡!!!)
table = str.maketrans("博文","阿文")
str = '博文天天睡觉不洗澡,博文他妈天天日决他,博文他妈天天劝博文他爸'
res = str.translate(table)
print(res)
1
2
3
4
5
2
3
4
5
阿文天天睡觉不洗澡,阿文他妈天天日决他,阿文他妈天天劝阿文他爸
# 1.4 字典
# 1.4.1 基础
dic = {'name': 'Adam', 'age': '15'}
1
# 1.4.2 常用方法
# 清空 clear
dic = {'name': 'Adam', 'age': '15'}
dic.clear()
print(dic)
1
2
3
4
2
3
4
{}
# 浅拷贝 copy
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99}}
dic2 = dic.copy()
dic['obj']['num'] = 88
print(dic2)
1
2
3
4
5
2
3
4
5
{'name': 'Adam', 'age': '15', 'obj': {'num': 88}}
# 创建新字典 fromkeys
依据给定的键序列和可选的默认值来创建字典
items = ['Adam','Douaa']
defaultAge = 18
dic = dict.fromkeys(items,defaultAge)
print(dic)
1
2
3
4
5
2
3
4
5
{'Adam': 18, 'Douaa': 18}
# 获取值 get
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99}}
value = dic.get('name')
print(value)
1
2
3
4
2
3
4
Adam
# 返回字典中键值对的视图 items
视图以可迭代的形式呈现,其中每个元素是一个包含键和对应值的元组。
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99}}
list = dic.items()
for key,value in list:
print(f"key:{key}, value:{value}")
1
2
3
4
5
2
3
4
5
key:name, value:Adam
key:age, value:15
key:obj, value:{'num': 99}
# 返回所有键 keys
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99}}
keys = dic.keys()
for key in keys:
print(f"key:{key}, value:{dic[key]}")
1
2
3
4
5
2
3
4
5
key:name, value:Adam
key:age, value:15
key:obj, value:{'num': 99}
# 返回所有值 values
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99}}
values = dic.values()
print(values)
1
2
3
4
2
3
4
dict_values(['Adam', '15', {'num': 99}])
# 删除指定键值对 pop(self, key, default=None)
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99}}
dic.pop('name')
print(dic)
1
2
3
4
2
3
4
{'age': '15', 'obj': {'num': 99}}
# 查询值 setdefault(self, key, default=None)
查询值,不在扔进去
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99}}
value = dic.setdefault('girl','Douaa')
print(value,dic)
1
2
3
4
2
3
4
Douaa {'name': 'Adam', 'age': '15', 'obj': {'num': 99}, 'girl': 'Douaa'}
# 浅更新 update
同名 key,直接覆盖。原 dict 不存在的 key,直接扔进去
dic = {'name': 'Adam', 'age': '15', 'obj':{'num':99,'num2':11}}
dic2 = {'name':'Douaa','age':'18','birth':'3-10','obj':{'num':11}}
dic.update(dic2)
print(dic)
1
2
3
4
5
2
3
4
5
{'name': 'Douaa', 'age': '18', 'obj': {'num': 11}, 'birth': '3-10'}