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--数据结构

评论关闭