标签:insert items erb hello 转换 应该 生成 创建 value
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
标签:insert items erb hello 转换 应该 生成 创建 value
原文地址:http://www.cnblogs.com/jiaoxuanwen/p/7244037.html