python--数据结构,,List方法appe
python--数据结构,,List方法appe
List方法
append(element)
li1 = ["hello", "fftu", 99];li1.append("verb");print(li1); #[‘hello‘, ‘fftu‘, 99, ‘verb‘]
li1 = ["hello", "fftu", 99];li2 = ["adv", "pron", "adj"];li1.append(li2);print(li1); #[‘hello‘, ‘fftu‘, 99, [‘adv‘, ‘pron‘, ‘adj‘]]
可以看出:不管被添加的什么数据类型,append()方法都会将其作为List的最后一个元素进行填充。
extend(element)
li1 = ["hello", "fftu", 99];li2 = ["adv", "pron", "adj"];# li1.extend(li2);li1 += li2;print(li1); [‘hello‘, ‘fftu‘, 99, ‘adv‘, ‘pron‘, ‘adj‘]
中间两句是等价的
insert(i, element)
i是元素将要占据的索引
li1 = ["hello", "fftu", 99];li2 = ["adv", "pron", "adj"];li1.insert(1, li2);print(li1); #[‘hello‘, [‘adv‘, ‘pron‘, ‘adj‘], ‘fftu‘, 99]
remove(element)
li1 = ["hello", "fftu", 99];li2 = ["adv", "pron", "adj"];li1.remove("hello");print(li1); #[‘fftu‘, 99]
pop(i)
li1 = ["hello", "fftu", 99];li2 = ["adv", "pron", "adj"];li1.pop(1);print(li1); #[‘hello‘, 99]
如果不传递参数i,默认删除最后一个元素。
这个函数有返回值,返回值为被删除的元素
clear()
移除列表所有元素,变成空List
index(element)
li1 = ["hello", "fftu", 99];li2 = ["adv", "pron", "adj"];print(li1.index(99)); #2
count(element)
li1 = ["hello", "fftu", 99, "fftu"];li2 = ["adv", "pron", "adj"];print(li1.count("fftu")); #2
将列表当做堆栈使用
堆栈作为特定的数据结构,特性是“后进先出”
append()将元素压入堆栈顶
pop()从堆栈顶部取出(删除元素)
将列表作为队列使用
貌似得引入queue,不会
列表推导式
通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。
实例:列表元素*3生成新列表
li1 = [1, 5, 10];result = [(3 * element) for element in li1];print(result); #[3, 15, 30]
修改上面的代码
li1 = [1, 5, 10];result = [[element, 3 * element] for element in li1];print(result); #[[1, 3], [5, 15], [10, 30]]
使用函数格式化List元素,生成新List
li1 = [1, 5, 10];def addWords(element): return "未修改前的数字是:" + str(element);result = [[addWords(element), 3 * element] for element in li1];print(result); #[[‘未修改前的数字是:1‘, 3], [‘未修改前的数字是:5‘, 15], [‘未修改前的数字是:10‘, 30]]
if作为过滤器
我觉得过滤应该写在推导式的外层
涉及到两个List
li1 = [1, 5, 10];li2 = [2, 6, 9];result = [(li1Element * li2Element) for li1Element in li1 for li2Element in li2];print(result); #[2, 6, 9, 10, 30, 45, 20, 60, 90]
列表转换
其实就是重排矩阵,用得上再重新看一下
字典
dict1 = {"name": "jiao", "age": 25};def insertWords(value): if(isinstance(value, int)): return ("now you are " + str(value)); if(isinstance(value, str)): return ("hello " + value);result = {str(key): insertWords(dict1[key]) for key in dict1};print(result); #{‘name‘: ‘hello jiao‘, ‘age‘: ‘now you are 25‘}
遍历技巧
在字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来
dict1 = {"name": "jiao", "age": 25};for key, value in dict1.items(): if(isinstance(value, int)): print(key + str(value)); else: print(key + value);#namejiao#age25
在序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到
li1 = ["helo", "fftu", 22];for index, value in enumerate(li1): print(str(index) + ":" + str(value)); # 0:helo# 1:fftu# 2:22
~END
python--数据结构
评论关闭