0 前言基础
1 科普 关键字/函数/方法
- 关键字:
del list[0]
- 函数:
print("str")
- print是一个函数 - 方法:
list.append()
方法是基于对象的基础上说的。
1 列表【List】
1.1 对 列表 的方法
查阅方法:在Ipython中
.+tab
可以获取对列表的所有操作
注:在windows下我的电脑没法进行命令补全,Ubuntu下则可以
-
增加:
[].insert(index,data)
[].append(data)
[].extend(list2)
-
修改;
[][index]= data
-
删除
del \[][inedx]
关键字[].remove[data]
[].pop
删除末尾数据[].pop(indx)
指定索引删除[].clear
清空
-
统计:
len([])
[].count(data)
统计数据在列表中出现的次数
-
排序:
- 升序
[].sort()
- 降序
[].sort(reverse = True)
[].reverse()
逆序 [和降序不一样,降序根据首字母,逆序直接翻转]
- 升序
1.2 应用场景:循环遍历
- 作为循环体:
for name in list: print(name)
- 利用循环生成列表:
[i for i in list]
2 元组【tuple】
可以保存不同类型的数据
2.1 应用场景:
-
⭐️ **list:**可以存放不同类型的数据,但是一般不用,在开发法中常用来存放相同数据,通过循环遍历做一点事情
-
元组有它特定的应用场景,因为不可修改、
-
函数的参数和返回值
-
格式化字符串:如
print("%d %s",(xx,xx))
传入的参数类型就是元组 -
保护数据(修改时可以转换出来)
- list(元组)
- tuple(列表)
-
2.2 注意事项
- 注1:元组基本不会使用空元祖,因为无法修改
- 注2:
(5)
是整数型而非元组,(5,)
才是元组 - ⭐️注3:一般开发中,不推荐使用tuple遍历,因为tuple默认保存的是一堆不同格式的内容,故无法确定取出数据的类型
3 字典格式
基本使用:
{key:value}
特点:一一对应
3.1 对 字典 的方法
-
清空:dict.clear()
-
与其余字典合并:dict.update(new_dict)
-
增加:dict[“new_key”] = new_data
- 一一对应:当key相同时,后输入的date会修改
-
字典的遍历
默认取出的循环体是
key
In [1]: card_list = {"name": "张三","qq": "12345", "phone": "110"}
In [2]: for k in card_list:
...: print(k,card_list[k])
name 张三
qq 12345
phone 110
3.2 应用场景总结
-
有序:list存
-
无序:dict存
-
字典+列表:多个字典放在一个列表中**【实现:一个 Key 多个 Value 】**
card_list = [{"name": "张三","qq": "12345", "phone": "110"},
{"name": "李四","qq": "54321", "phone": "10086"}]
4 字符串【str】
python中对于字符串的操作多到爆炸,保证了对于字符串操作的灵活性
学习与使用技巧:
重点还是TAB后直接看英文知道这个方法的含义
方法太多,根本记不下来,只能保存下来,用markdown做笔记了。
4.1 对 字符串 的方法
- 字符串变量可以用
+
拼接字符串 *
可以重复相同的字符串- 格式化字符串
- 方法一:
print("%d" % 变量名)
- 方法二:
"{}".format(变量名)
- 注:可以控制
- 前补零:
print("06%d")
,长度6,不足0补 - 后补零:
print(".06%f")
,类型肯定为浮点型
- 前补零:
- 方法一:
4.2 规范化:
- 技巧:单引号与双引号都可以创建字符串
- 通常:使用双引号
- 若str文本中有双引号时,才使用单引号,避免转义
4.3 对字符串的索引
- 规则:
- 从头开始索引:开始可以省略
- 到末尾结束索引:结束可以省略
- 当索引值为负号,逆序索引
- 从索引 1 开始,每隔一个取一个:num_str[1::2]
- 字符串的逆序:num_str[::-1]
5 转换
首先思考可用for循环完成,如将标签 转换为颜色字符串
[str(i).replace("1","r").replace("2","k").replace("0","b") for i in y ] |
5.1 列表——》字符串
In [1]: list1 = ['1','2','3','4','a'] |
5.2 列表——》元组
In [2]: list1 = ['1','2','3','4','a',(1,2,3)] |
5.3 列表——》字典
dict()
里面要求的是映射关系,所以需要用zip
把他们建立映射关系,再去转换
In [3]: list1 = ['1','2','3','4','a',(1,2,3)] |
5.4 列表——》集合set
根据结合的要求,会把list
中的相同元素去重。
In [5]: list1 = ['1','2','3','3'] |
5.5 元组——》列表
In [6]: tuple1 = (1,2,3,4,5,'2','a') |
5.6 元组——》字符串
tuple
和list
函数要想转换成字符串,必须依靠‘ ’.join(tuple/list)
来实现,要字符串型的要求
In [7]: tuple1 = ('1','2','3','4','5','2','a') |
5.7 元组——》字典
也是通过
zip
实现map映射的
In [9]: tuple1 = ('1','2','3','4') |
5.8 元组——》集合 set
In [11]: tuple1 = ('1','2','3','4') |
5.9字符串——》列表
字符串转换成list
的时候,str
可以作为迭代对象,直接放入;也可以使用split
对字符串进行切割。然后返回list
中去。
In [13]: s ='a1b1c1' |
5.10 字符串——》元组
这里面没有split
这个函数,因为split
后会形成list
In [14]: s ='a1b1c1' |
5.11 字符串——》字典
其核心还是利用map建立映射关系
In [15]: s ='a1b1c1' |
5.12 字符串——》集合 set
还是注意set会去重,并且set里面是可迭代的对象即可
In [16]: set('abca') |
5.13 字典——》列表/元组/set
In [18]: dict1 = {1:'a',2:'b',3:'c'} |
5.14 字典——》字符串
技巧在于:字典——》列表——》
"".join(list)
In [33]: print(''.join(list(dict1.values()))) |
5.15 集合set——》列表/元组
In [35]: set1 = {1,2,3,4,5,6} |
5.16 集合set——》字符
路径:集合——》列表/元组——》字符
In [38]: set1 = {1,2,3,4,5,6} |
5.17 集合——》字典
In [40]: set1 = {1,2,3,4,5,6} |