前言:列表是python重要的内置数据类型,其属性和操作是numpy外置类型的基础,理解好了列表这种类型,更有利于理解数据表的概念和操作,在将列表的属性、特性、已经创建、增删改查询等内容做一次全面的介绍,供参考学习。
列表是 Python 中的 4 种内置数据类型之一,用于存储数据集合,其他 3 种分别是元组(Tuple)、集合(Set)和字典(Dictionary),它们具有不同的特性和用途。
列表(List)是一种有序和可更改的集合。允许重复的成员。
元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。
集合(Set)是一个无序和无索引的集合。没有重复的成员。
词典(Dictionary)是一个无序,可变和有索引的集合。没有重复的成员。
有序:当我们说列表是有序时,意味着项目有一个定义的顺序,而且该顺序不会改变。
可变:列表是可变的,这意味着我们可以在创建列表后更改、添加和删除项目。
允许重复:由于列表具有索引,所以列表可以包含具有相同值的项目。
列表项具有索引,第一项的索引为[0],第二项的索引为[1],依此类推。
列表是由 [ ] 括起来,由一系列按特定顺序排列的值组成的,这些值可以是整数、浮点数、字符串,或另一个列表,甚至是不同类型的数据都可以被容纳在列表中。通过type() 函数,列表被定义为具有数据类型 ‘list’ 的对象。
1)、创建列表:
使用 [] 创建
list1 = [1, 2, 3, 4, 5,6]
list2 = ['a', 'b', 'c', 'd', 'e',’f’]
list3 = [6, 'a', 2.5]
使用 range()函数
创建一个包含一系列数值的列表,可以使用 range()函数生成一个数值序列,再通过 list()函数将其转换为列表。
num = list(range(1, 10))
print("数值列表:", num)
使用 list() 构造函数创建列表
list1 = list(("a", "b", "c")) # 注意双重圆括号
print(list1)
type(list1)
使用切片创建新表:
fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']
copy_fruits = fruits[:]
print("复制列表:", copy_fruits)
sublist = fruits[1:4]
使用 copy() 方法创建新表:
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
2)、列表拼接
在Python中,有多种方法可以连接两个或多个列表。其中一种最简单的方法是使用 + 运算符。
示例,连接两个列表:
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
list3 = list1 + list2
print(list3)
另一种连接两个列表的方法是将 list2 中的所有项逐一附加到 list1 中:
示例,将 list2 附加到 list1:
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
for x in list2:
list1.append(x)
print(list1)
或者您可以使用 extend() 方法,其目的是将一个列表的元素添加到另一个列表中:
示例,使用 extend() 方法将 list2 添加到 list1 的末尾:
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
list1.extend(list2)
print(list1)
3)、列表访问:
列表是有序的,你可以使用索引或者切片来访问列表元素,列表的索引从0开始,表示列表中第一个元素的位置。还可以通过负的来从末尾往前定位元素的位置,-1为最后的一个。
numbers = [1, 2, 3, 4, 5,6,7]
first_number = numbers[0]
last_number = numbers[-1]
print("第一个数字:", first_number) #: 第一个数字: 1
print("最后一个数字:", last_number) #: 最后一个数字: 7
切片访问:切片操作来处理列表的一部分元素,切片操作使用方括号和冒号(:)来指定起始索引和结束索引。起始索引表示切片子列表的第一个元素的位置,结束索引表示要该索引的上一个位置。其取值是半封闭的,即前闭后开的原则,前面包含,后面不包含,[1:3]取得1,2的索引,不取3的索引,切片访问生成的表赋值给一个新变量,会产生一个新表。
fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']
sublist = fruits[1:4]
print("子列表:", sublist) #输出:子列表: ['banana', 'cherry', 'date']
copy_fruits = fruits[:]
print("复制列表:", copy_fruits)
负的索引:负索引表示从末尾开始,-1 表示最后一个项目,-2 表示倒数第二个项目,依此类推。
my_list = ["Python", "李白", 1024]
print(my_list[-1]) # 输出:1024
您不能简单地通过键入 list2 = list1 来复制一个列表,因为:list2 将只是对 list1 的引用,对 list1 进行的更改也会自动在 list2 中进行。有多种方法可以进行复制,其中一种方法是使用内置的列表方法 copy()。通过ID()查看列表地址,可以知道是否和原来的列表是否一个。
示例,使用 copy() 方法复制一个列表:
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)
print(id(thislist))
print(id(mylist))
输出:79689664
79716928
可见产生了新表,位置地址不一样。
另一种复制的方法是使用内置的 list() 方法。
示例,使用 list() 方法复制一个列表:
thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)
print(id(thislist))
print(id(mylist))
输出:
79443072 79998400
以后将逐渐依照数据分析、挖掘的过程讲解python的基本知识、疑难杂症、特色应用、例题试题、分析模块等内容,形成一个系列python从浅到深入知识系列,欢迎留言、建议和讨论。
如果有需要sas的有关知识也可以后面留言。
今天就到这里,下一期将介绍列表的修改、删除、遍历等内容。请收藏、关注并讨论。