首页 > 编程笔记 > Python笔记 阅读:40

Python list列表的多种用法(附带实例)

Python 中,可以使用一个列表(list)存储任何类型的对象,示例代码如下:
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print("list1[0]: ", list1[0])
print("list2[1:5]: ", list2[1:5])
输出如下:

list1[0]: physics
list2[1:5]: [2, 3, 4, 5]


此外,列表还可以将另一个列表作为项目,这称为嵌套列表,示例代码如下:
my_list = ["mouse", [8, 4, 6], ['a']]  # 嵌套列表

使用 range() 函数可以生成列表,示例代码如下:
>>> list(range(10)) # 从0开始,到10,步长为1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> list(range(0, 30, 5)) # 从0开始,到30,步长为5
[0, 5, 10, 15, 20, 25]

可以使用赋值运算符(=)更改一个项目或项目范围,示例代码如下:
odd = [2, 4, 6, 8] # 错误的值
odd[0] = 1 # 改变第一项
print(odd)
# 输出:[1, 4, 6, 8]

odd[1:4] = [3, 5, 7] # 改变第2至第4项
print(odd)
# 输出:[1, 3, 5, 7]

可以使用 append() 方法将一个项添加到列表中,或使用 extend() 方法添加多个项,示例代码如下:
odd = [1, 3, 5]
odd.append(7)
print(odd)
# 输出:[1, 3, 5, 7]

odd.extend([9, 11, 13])
print(odd)
# 输出:[1, 3, 5, 7, 9, 11, 13]

可以使用 + 运算符来连接两个列表,其中,* 运算符重复列表给定次数,示例代码如下:
odd = [1, 3, 5]
print(odd + [9, 7, 5])
# 输出:[1, 3, 5, 9, 7, 5]

print(["re"] * 3)
# 输出:["re", "re", "re"]

此外,还可以使用 insert() 方法在所需位置插入一个项目,或者通过将多个项目挤压到列表的空白切片中来插入多个项目,示例代码如下:
odd = [1, 9]
odd.insert(1, 3)
print(odd)
# 输出:[1, 3, 9]

odd[2:2] = [5, 7]
print(odd)
# 输出:[1, 3, 5, 7, 9]

使用关键字 del 可以从列表中删除一个或多个项目,示例代码如下:
my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
del my_list[2] # 删除一个项目
print(my_list)
# 输出:['p', 'r', 'b', 'l', 'e', 'm']

del my_list[1:5] # 删除多个项目
print(my_list)
# 输出:['p', 'm']

还可以完全删除列表,示例代码如下:
del my_list # 删除整个列表
print(my_list) # 错误:列表未定义

使用 remove() 方法可以删除给定的项目。使用 pop() 方法可以删除给定索引处的项目。使用 clear() 方法可以清空列表。示例代码如下:
my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
my_list.remove('p')
print(my_list)
# 输出:['r', 'o', 'b', 'l', 'e', 'm']

print(my_list.pop(1))
# 输出:'o'

print(my_list)
# 输出:['r', 'b', 'l', 'e', 'm']

print(my_list.pop())
# 输出:'m'

print(my_list)
# 输出:['r', 'b', 'l', 'e']

my_list.clear()
print(my_list)
# 输出:[]

还可以通过为一个元素片段分配一个空列表来删除列表中的项目,示例代码如下:
>>> my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']

>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']

for-in 语句可以轻松遍历列表中的项目,示例代码如下:
for fruit in ['apple', 'banana', 'mango']:
    print("I like", fruit)

为了复制出一个新的列表,可以使用内置的 list.copy() 方法(从 Python 3.3 开始提供),示例代码如下:
>>> old_list = [1, 2, 3]
>>> new_list = old_list.copy()

使用 new_list = my_list,实际上没有两个列表。赋值仅复制对列表的引用,而不是实际列表,因此,new_list 和 my_list 在赋值后引用相同的列表。

通常,我们只想收集符合特定条件的项目。下面有一个单词列表,我们只想从中提取包含 wo 的单词。为此,需要先创建一个新的空列表,然后遍历原始列表以查找要放入的项目,代码如下:
>>> wood = 'How much wood would a woodchuck chuck if a woodchuck could chuck wood?'.split()
>>> wood
['How', 'much', 'wood', 'would', 'a', 'woodchuck', 'chuck', 'if', 'a', 'woodchuck', 'could', 'chuck', 'wood?']

>>> wolist = [] # 创建一个空的列表
>>> for x in wood:
        if 'wo' in x:
            wolist.append(x) # 向列表增加项目
>>> wolist
['wood', 'would', 'woodchuck', 'woodchuck', 'wood?']
打印列表的内容,代码如下:
>>> mylist = ['x', 3, 'b']
>>> print('[%s]' % ', '.join(map(str, mylist)))
[x, 3, b]

相关文章