美文网首页Python
Python List 列表

Python List 列表

作者: JunChow520 | 来源:发表于2019-03-26 14:12 被阅读30次
Python序列结构

列表

列表是什么

  • 列表由一系列按特定顺序排列的元素组成,换言之列表是有序集合。
  • 列表中的元素之间可以没有任何关系
  • 鉴于列表包含多个元素,给列表指定表示复数的名称是个不错的实践。
  • 列表使用方括号[]表示,并用逗号,分隔其中的元素。
languages = ["python", "c", "shell"]
print(languages)
# ['python', 'c', 'shell']

访问列表元素

  • 列表是有序集合,要访问列表中的元素只需要将指定元素的位置或索引即可。
languages = ["python", "c", "shell"]
print(languages, languages[0], languages[len(languages)-1])
# ['python', 'c', 'shell'] python shell
  • 列表元素的索引是从0开始而不是1开始,访问最后一个元素可将索引指定为-1即可,依此类推。
languages = ["python", "c", "shell"]
print(languages, languages[0], languages[len(languages)-1], languages[-1])
# ['python', 'c', 'shell'] python shell shell
  • 使用列表中的各个值,可以像使用变量一样使用列表中的各个值。
languages = ["python", "c", "shell"]
print("My first language was " + languages[0].title() + ".")
# My first language was Python.

修改列表元素

  • 多数列表是将是动态的,列表创建后将随着程序的运行增减元素,列表的长度将不断变化。
  • 修改列表元素与访问列表元素语法类似,指定列表名和要修改元素的索引后再为该元素赋新值。
languages = ["python", "c", "shell"]
languages[0] = "lua"
print(languages)
# ['lua', 'c', 'shell']

列表追加元素

  • append() 在列表末尾添加新元素,而不影响列表中其它所有元素。
languages = ["python", "c", "shell"]
languages[0] = "lua"
languages.append("c++")
print(languages)
# ['lua', 'c', 'shell', 'c++']
  • 使用append()动态地创建列表
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

列表插入元素

  • insert()可在列表的任何位置添加新元素,需指定新元素的索引和值,插入操作将列表中既有的每个元素都右移一个位置。
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

heroes.insert(0, "black panther")
print(heroes)
# ['black panther', 'spider man', 'iron man', 'captain american', 'black widow', 'hulk']

heroes.insert(-1, "cable")
print(heroes)
# ['black panther', 'spider man', 'iron man', 'captain american', 'black widow', 'cable', 'hulk']
列表

列表删除元素

  • del 语句删除元素,需指定待删除的元素在列表中的位置。
  • 使用del语句将值从列表中删除后,就无法再访问它了。
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

del heroes[0]
print(heroes)
# ['iron man', 'captain american', 'black widow', 'hulk']

del heroes[-1]
print(heroes)
# ['iron man', 'captain american', 'black widow']
  • 使用pop()函数删除元素,并返回删除的元素的值。
  • pop()函数可以删除列表末尾的元素,并能接着使用它。
  • 列表像是一个栈,删除列表末尾的元素相当于弹出栈顶的元素。
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

hero = heroes.pop()
print(heroes, hero)
# ['spider man', 'iron man', 'captain american', 'black widow'] hulk

hero = heroes.pop(0)
print(heroes, hero)
# ['iron man', 'captain american', 'black widow'] spider man

hero = heroes.pop(-1)
print(heroes, hero)
# ['iron man', 'captain american'] black widow

根据值删除元素

若只知道需要删除元素的值而不知道元素在列表中的位置,可使用remove()删除。

heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

heroes.remove("iron man")
print(heroes)
# ['spider man', 'captain american', 'black widow', 'hulk']
列表方法

组织列表

在创建列表时元素的排列顺序是无法预料的,但经常会需要以特定的顺序呈现。有时又希望保留列表元素最初的排列顺序,有时候又需要调整排列顺序。

列表排序

  • 使用sort()对列表进行永久排序,默认为升序方式。
  • 使用sort(reverse=True)改变排序方式为降序
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

heroes.sort()
print(heroes)
# ['black widow', 'captain american', 'hulk', 'iron man', 'spider man']

heroes.sort(reverse=True)
print(heroes)
# ['spider man', 'iron man', 'hulk', 'captain american', 'black widow']
  • 使用sorted()对列表进行临时排序,保留列表元素原来的排列顺序,同时以特定的顺序呈现。
  • 使用sorted(list, reverse=True)对列表临时降序排序
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

list = sorted(heroes)
print(heroes, list)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk'] ['black widow', 'captain american', 'hulk', 'iron man', 'spider man']

list = sorted(heroes, reverse=True)
print(heroes, list)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk'] ['spider man', 'iron man', 'hulk', 'captain american', 'black widow']

列表反转

  • 使用reverse()反转列表元素的排列顺序
  • reverse()将永久性地改变列表元素的排列顺序
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

heroes.reverse()
print(heroes)
# ['hulk', 'black widow', 'captain american', 'iron man', 'spider man']

列表长度

  • 使用len()确定列表的长度,python计算列表元素时是从1开始的。
heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

len = len(heroes)
print(len)
# 5

使用列表时避免索引错误

heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

索引错误IndexError:列表的索引是从0开始的

print(heroes[len(heroes)])
Traceback (most recent call last):
  File "test.py", line 10, in <module>
    print(heroes[len(heroes)])
IndexError: list index out of range

操作列表

遍历列表

当需要遍历列表中每个元素,可使用for循环。

heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

for hero in heroes:
    print(hero.title())
# Spider Man
# Iron Man
# Captain American
# Black Widow
# Hulk

循环是让计算机自动完成重复工作的常用方式之一,循环时对列表中的每个元素,都将执行循环指定的步骤,不管列表包含多少个元素。在循环中,使用单复数分别表示元素和列表,是一个非常好的实践。

for循环中,每个缩进的代码行都是循环体的一部分,将针对列表中的每个值都会执行一次。

heroes = []
heroes.append("spider man")
heroes.append("iron man")
heroes.append("captain american")
heroes.append("black widow")
heroes.append("hulk")
print(heroes)
# ['spider man', 'iron man', 'captain american', 'black widow', 'hulk']

for hero in heroes:
    print(hero.title() + " Hehe...")
    print(hero.capitalize() + "\n")
# Spider Man Hehe...
# Spider man
# 
# Iron Man Hehe...
# Iron man
# 
# Captain American Hehe...
# Captain american
# 
# Black Widow Hehe...
# Black widow
# 
# Hulk Hehe...
# Hulk

避免缩进错误

  • 忘记缩进
  • 忘记缩进额外的代码行
  • 不必要的缩进
  • 循环后不必要的缩进
  • 遗漏了冒好
for hero in heroes:
print(hero.title() + " Hehe...")
    print(hero.capitalize() + "\n")

缩进错误IndentationError

  File "test.py", line 11
    print(hero.title() + " Hehe...")
        ^
IndentationError: expected an indented block

为避免意外缩进错误,请只缩进需要缩进的代码。

for hero in heroes:
    print(hero.title() + " Hehe...")
    print(hero.capitalize() + "\n")

    print("the end")

从语法上看,代码是合法的,但由于存在逻辑错误,结果并不符合预期。

# Spider Man Hehe...
# Spider man
# 
# the end
# Iron Man Hehe...
# Iron man
# 
# the end
# Captain American Hehe...
# Captain american
# 
# the end
# Black Widow Hehe...
# Black widow
# 
# the end
# Hulk Hehe...
# Hulk
# 
# the end

遗漏了冒好将导致语法错误 SyntaxError

for hero in heroes
    print(hero.title() + " Hehe...")
    print(hero.capitalize() + "\n")
print("the end")
  File "test.py", line 10
    for hero in heroes
                     ^
SyntaxError: invalid syntax

数字列表

列表非常适合存储数字集合,python提供很多工具函数帮助高效地处理数字列表。

  • range() 生成一系列数字
  • range()从指定的第一个值开始数,在到达指定的第二个值后停止,因此是不包含第二个值得。
for item in range(1,3):
    print(item)
# 1
# 2
  • 使用range()创建数字列表,可使用list()range()的结果直接转换为列表。
print(list(range(1,10)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 使用range()时可指定步长
print(list(range(1, 10, 2)))
# [1, 3, 5, 7, 9]

print(list(range(0, 10, 2)))
# [0, 2, 4, 6, 8]

squares = []
for item in range(1, 11):
    squares.append(item**2)
print(squares)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

数字列表统计

对数字列表执行简单的统计计算

  • min() 获取数字列表中最小值
  • max() 获取数字列表中最大值
  • sum() 获取数组列表中的总和
list = []
for item in range(1, 11):
    list.append(item**2)
print(list)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

min = min(list)
print(min)
# 1

max = max(list)
print(max)
# 100

sum = sum(list)
print(sum)
# 385

列表解析

列表解析会将for循环和创建新元素的代码合并为一行,并自动附加新元素,用来生成列表。

list = [item**2 for item in range(1, 11)]
print(list)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表切片

  • 处理列表的部分元素又称为切片
  • 创建切片时可指定要使用的第一个元素和最后一个元素的索引
  • range()函数一样,python在到达指定的第二个索引前面的元素后停止。
list = [item**2 for item in range(1, 11)]
print(list)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

piece = list[0:5]
print(piece)
# [1, 4, 9, 16, 25]

如果没有指定第一个起始索引则默认从列表开头开始

piece = list[:5]
print(piece)
# [1, 4, 9, 16, 25]

如果要让切片终止于列表末尾,可不用指定第二个结束索引。

piece = list[5:]
print(piece)
# [36, 49, 64, 81, 100]

如果不指定起始索引和结束索引,则会返回原列表。

piece = list[:]
print(piece)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

负数索引可以返回离列表末尾相应距离的元素

piece = list[-5:]
print(piece)
# [36, 49, 64, 81, 100]

遍历切片

如果要遍历列表中的部分元素,可以在for循环中使用切片。

for item in list[0:5]:
    print(item)

复制列表

要复制列表可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引[:]

list = [item**2 for item in range(1, 11)]
print(list)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

copy = list[:]
print(copy)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

相关文章

  • python list与set的区别

    python list与set的区别 python数据类型:列表List, Set集合; 列表List: 1.创...

  • 第四天学习python总结

    python的基本类型 一、List(列表)类型 List(列表) 是 Python 中使用最频繁的数据类型。列表...

  • python 列表

    python 列表 list: 定义: 变量=list() #定义空列表 变量=[] list的操作: 增加数...

  • Day01自学 - Python 列表(List)

    学习参考博客地址:Python 列表(List) | python list(列表)操作用法总结 一、基础语法 创...

  • (三)Python的List和Tuple类型

    Python创建List Python创建list Python内置的一种数据类型是列表:list。list是一种...

  • Python完结篇_基础知识2

    Python数列 1. 函数 len(list)—列表元素个数 max(list)—列表最大值 min(list...

  • 06 list列表和相关运算

    ====== list列表 ====== 1. 什么是列表(list) 列表是Python提供的容器型数据类型,可...

  • python set集合,排序输出

    python set集合,排序输出 列表-->集合-->列表-->list sort() == 集合-->列表--...

  • python_列表

    python 列表:list 列表:可以存储一组数据的类型;组合数据类型 创建列表 name=list() ...

  • Python list方法使用详解

    Python列表(list)的相关操作及方法 一、list列表 1.概述: 本质:list列表的本质是一种有序的集...

网友评论

    本文标题:Python List 列表

    本文链接:https://www.haomeiwen.com/subject/csaivqtx.html