Python创建列表的多种方法(附带实例)
列表(List)对象是 Python 中最常用的对象之一,可以将一项或多项数据存储到列表中,并可以随时在列表中添加或删除数据。
列表中的数据是有序排列的,每个数据都有一个索引,通过索引可以访问特定位置上的数据。
下面的代码是创建一个包含 3 个元素的列表,这 3 个元素是一个字符串和两个数字:
如果列表只包含一个元素,则只需将其放到一对中括号中:
使用 Python 内置的 list() 函数,可以将字符串或元组转换为列表。下面的代码是将字符串中的每一个字符转换为列表中的每一项数据:
上述代码将创建以下列表:
如需创建一个包含数字 1~9 的列表,可以使用以下代码,其中的 range 是一个 Python 内置函数,为 range() 函数设置的参数 10 是将要创建的数字上限,但是不包括该数字。
上述代码将创建以下列表:
下面的代码是创建一个嵌套列表,外层列表有两个元素,每个元素也是一个列表。内层的每个列表有 3 个元素,每个元素都是数字。
使用 list() 函数和 range() 函数也可以创建上面的嵌套列表,代码如下:
列表推导式是一个表达式,只需一行代码即可实现至少需要两三行代码才能实现相同功能的for语句,任何可以使用表达式的地方,都可以使用列表推导式,例如可以将列表推导式的结果赋值给变量。
下面的代码是创建一个只包含数字 1~10 中偶数的列表:
在中括号中,开头部分的 int(x) 表示将每一个数字转换为整数。从 for 开始直到结尾部分表示使用变量 x 逐一引用由 list() 函数创建的列表中的每一个数字,并将能被 2 整除的数字添加到列表中。
处理完列表中的最后一个数字后,列表推导式将结束运行,最终创建的就是 1~10 中的所有偶数。
列表中的数据是有序排列的,每个数据都有一个索引,通过索引可以访问特定位置上的数据。
Python创建包含一项或多项数据的列表
创建一个列表时,使用一对中括号包围列表中的所有数据,各项数据之间以逗号分隔。下面的代码是创建一个包含 3 个元素的列表,这 3 个元素是一个字符串和两个数字:
['sx', 666, 888]
如果列表只包含一个元素,则只需将其放到一对中括号中:
['sx']
使用 Python 内置的 list() 函数,可以将字符串或元组转换为列表。下面的代码是将字符串中的每一个字符转换为列表中的每一项数据:
list('python')
上述代码将创建以下列表:
['p','y','t','h','o','n']
如需创建一个包含数字 1~9 的列表,可以使用以下代码,其中的 range 是一个 Python 内置函数,为 range() 函数设置的参数 10 是将要创建的数字上限,但是不包括该数字。
list(range(1, 10))
上述代码将创建以下列表:
[1,2,3,4,5,6,7,8,9]
Python创建嵌套列表
列表中的数据可以是任何类型,如果列表中的数据也是列表,则内外列表将构成一个嵌套列表,外层列表称为父列表,内层列表称为子列表。下面的代码是创建一个嵌套列表,外层列表有两个元素,每个元素也是一个列表。内层的每个列表有 3 个元素,每个元素都是数字。
[[1,2,3],[4,5,6]]
使用 list() 函数和 range() 函数也可以创建上面的嵌套列表,代码如下:
[list(range(1, 4)), list(range(4, 7))]
Python创建符合特定条件的列表
如需使列表中的数据满足指定的条件,可以使用列表推导式创建列表。列表推导式是一个表达式,只需一行代码即可实现至少需要两三行代码才能实现相同功能的for语句,任何可以使用表达式的地方,都可以使用列表推导式,例如可以将列表推导式的结果赋值给变量。
下面的代码是创建一个只包含数字 1~10 中偶数的列表:
[x for x in list(range(1, 11)) if x % 2 == 0]上述代码将创建以下列表:
[2,4,6,8,10]在上面的代码中,将列表推导式中的所有内容放入一对中括号中,表明将要创建一个列表。
在中括号中,开头部分的 int(x) 表示将每一个数字转换为整数。从 for 开始直到结尾部分表示使用变量 x 逐一引用由 list() 函数创建的列表中的每一个数字,并将能被 2 整除的数字添加到列表中。
处理完列表中的最后一个数字后,列表推导式将结束运行,最终创建的就是 1~10 中的所有偶数。