Python教程

python学习笔记--数据结构之「列表」

本文主要是介绍python学习笔记--数据结构之「列表」,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、列表的特性

1. list.append(x)  # 在列表的末尾添加一个元素

list_a = [1,2,3,4]
list_a.append(5)
print(list_a)
2. list.insert(i,x) #在指定位置插入元素。第一个参数是插入元素的索引

list_a = [1,2,3,4]
list_a.insert(0,8)
list_a.insert(len(list_a), 9)  # 等同于 a.append(9)
print(list_a)
3. list.remove(x)  # 从列表中删除第一个值为 x 的元素

list_a = [1,2,3,4,2]
list_a.remove(2)
print(list_a)
4. list.pop([i])
# 删除列表中指定位置的元素,并返回被删除的元素。未指定位置时,a.pop() 删除并返回列表的最后一个元素。
# 方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。

list_a = [1,2,3,4,2]
x = list_a.pop(2) # 不能写成list_a.pop([2])
y = list_a.pop() # 删除并返回列表的最后一个元素
print(list_a)
print(x,y)

一开始学习时,遇到报错:
TypeError: ‘list’ object cannot be interpreted as an integer

在这里插入图片描述
类型错误,不能将list对象转换为一个整数. pop方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。
x = list_a.pop(2) 不能写成list_a.pop([2])

5. list.extend(iterable) # 用于在列表末尾一次性追加另一个序列中的多个值

list_a = [1,2,3,4,2]
list_b = [6,7,8]
list_a.extend(list_b)
print(list_a,list_b)
6. list.clear() # 删除列表里的所有元素

list_a = [1,2,3,4,2]
list_a.clear()
print(list_a)
7. list.count(x) # 返回列表中元素 x 出现的次数。

list_a = [1,2,3,4,2]
x =list_a.count(2)
print(x)
8. list.index(x[, start[, end]])
# 返回列表中第一个值为 x 的元素的零基索引。未找到指定元素时,触发 ValueError 异常。
# 可选参数 start 和 end 是切片符号,用于将搜索限制为列表的特定子序列。返回的索引是相对于整个序列的开始计算的,而不是 start 参数。

list_a = [1,2,3,4,2]
x =list_a.index(2)
y = list_a.index(2,3,5)
print(x,y)
list_b = [123, 'xyz', 'yyy', 'abc']
print("xyz 索引位置: ", list_b.index( 'xyz' ))
print("yyy 索引位置 : ", list_b.index( 'yyy', 1, 3 )) 
9. list.sort(*, key=None, reverse=False) # 对原列表进行排序

list_a = [1,2,3,4,2]
list_a.sort() # reverse = False 升序(默认)
print(list_a)
list_a.sort(reverse=True) # reverse = True 降序
print(list_a)
10. list.reverse()  # 翻转列表中的元素

list_a = [1,2,3,4,2]
list_a.reverse()
print(list_a)
11. list.copy() # 复制一个副本

list_a = [1,2,3,4,2]
list_b = list_a # 直接赋值,是引用赋值,更改一个,另一个同样会变
list_c = list_a.copy() # 复制一个副本,原值和新复制的变量互不影响
print(list_b)
print(list_c)
list_a.append(5)
print(list_a)
print(list_b)
print(list_c)

二、列表推导式

列表推导式创建列表的方式更简洁。常见的用法为,对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列。

# 1. 例如想生成一个平方列表,可以使用for循环,也可以使用列表推导式

list_a1 = []
for i in range(10):
    list_a1.append(i ** 2)
print(list_a1)
list_a2 = [i**2 for i in range(10)]
print(list_a2)

list_b1 = []
for i in range(10):
    if i !=1:
        list_b1.append(i ** 2)
print(list_b1)
list_b2 = [i**2 for i in range(10) if i != 1]
print(list_b2)

# 嵌套循环
list_c1 = []
for i in range(10):
    for j in range(10):
        list_c1.append(i * j)
print(list_c1)
list_c2 = [i*j for i in range(10) for j in range(10)]
print(list_c2)
这篇关于python学习笔记--数据结构之「列表」的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!