Python教程-Python 列表
在 Python 中,各种数据类型的序列被存储在列表中。列表是一种包含不同类型的值或项的集合。由于 Python 列表是可变的,我们可以在形成后更改它们的元素。逗号(,)和方括号([])用作分隔符来包围列表的项。
尽管有六种 Python 数据类型可以保存序列,但列表是最常见和可靠的形式。列表是一种序列数据类型,用于存储数据的集合。元组(Tuples)和字符串(Strings)是两种类似的序列数据格式。
在 Python 中编写的列表与其他语言中定义的动态扩展数组完全相同,例如 Java 中的 ArrayList 和 C++ 中的 Vector。列表是由逗号分隔的项的集合,由符号 [] 表示。
列表声明
代码
# a simple list
list1 = [1, 2, "Python", "Program", 15.9]
list2 = ["Amy", "Ryan", "Henry", "Emma"]
# printing the list
print(list1)
print(list2)
# printing the type of list
print(type(list1))
print(type(list2))
输出:
[1, 2, 'Python', 'Program', 15.9]
['Amy', 'Ryan', 'Henry', 'Emma']
< class ' list ' >
< class ' list ' >
列表的特点
列表的特点如下:
- 列表是有序的。
- 可以通过索引访问列表元素。
- 列表是可变类型。
- 列表中的元素是可变类型。
- 列表可以存储不同类型的元素。
有序列表的检查
代码
# example
a = [ 1, 2, "Ram", 3.50, "Rahul", 5, 6 ]
b = [ 1, 2, 5, "Ram", 3.50, "Rahul", 6 ]
a == b
输出:
False
这两个列表中包含相同的元素,但第二个列表改变了第五个元素的位置,这与原计划的顺序不符。当比较这两个列表时,将返回 False。
代码
# example
a = [ 1, 2, "Ram", 3.50, "Rahul", 5, 6]
b = [ 1, 2, "Ram", 3.50, "Rahul", 5, 6]
a == b
输出:
True
列表始终保持元素的顺序。因此,它是一个有序的元素集合。
让我们更详细地看一下列表的示例。
代码
# list example in detail
emp = [ "John", 102, "USA"]
Dep1 = [ "CS",10]
Dep2 = [ "IT",11]
HOD_CS = [ 10,"Mr. Holding"]
HOD_IT = [11, "Mr. Bewon"]
print("printing employee data ...")
print(" Name : %s, ID: %d, Country: %s" %(emp[0], emp[1], emp[2]))
print("printing departments ...")
print("Department 1:\nName: %s, ID: %d\n Department 2:\n Name: %s, ID: %s"%( Dep1[0], Dep2[1], Dep2[0], Dep2[1]))
print("HOD Details ....")
print("CS HOD Name: %s, Id: %d" %(HOD_CS[1], HOD_CS[0]))
print("IT HOD Name: %s, Id: %d" %(HOD_IT[1], HOD_IT[0]))
print(type(emp), type(Dep1), type(Dep2), type(HOD_CS), type(HOD_IT))
输出:
printing employee data...
Name : John, ID: 102, Country: USA
printing departments...
Department 1:
Name: CS, ID: 11
Department 2:
Name: IT, ID: 11
HOD Details ....
CS HOD Name: Mr. Holding, Id: 10
IT HOD Name: Mr. Bewon, Id: 11
<class ' list '> <class ' list '> <class ' list '> <class ' list '> <class ' list '>
在上面的示例中,我们从已创建的列表中打印了员工和部门的详细信息。为了更好地理解列表的概念,请查看上述代码。
列表索引和切片
索引过程与字符串处理类似。切片运算符 [] 可用于访问列表的元素。
索引范围从 0 到长度 -1。0 索引是列表的第一个元素存储的位置,1 索引是第二个元素存储的位置,依此类推。
我们可以使用以下语法获取列表的子列表。
list_varible(start:stop:step)
- start 表示列表的起始记录位置。
- stop 表示列表的最后记录位置。
- step 在 start 内用于跳过第 n 个元素:stop。
start 参数是初始索引,step 是结束索引,end 参数的值是要“步进”的元素数量。如果没有特定的值,默认情况下,步进的默认值为 1。在结果子列表内,具有相同起始记录的元素将可用,但具有文件结束的元素将不可用。列表中的第一个元素似乎具有索引为零。
考虑以下示例:
代码
list = [1,2,3,4,5,6,7]
print(list[0])
print(list[1])
print(list[2])
print(list[3])
# Slicing the elements
print(list[0:6])
# By default, the index value is 0 so its starts from the 0th element and go for index -1.
print(list[:])
print(list[2:5])
print(list[1:6:2])
输出:
1
2
3
4
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[3, 4, 5]
[2, 4, 6]
与其他编程语言不同,Python 还允许您使用负索引。负索引从右侧开始计数。索引 -1 表示列表右侧的最后一个元素,接着是索引 -2 表示左侧的下一个元素,依此类推,直到到达左侧的最后一个元素。
让我们看一下以下示例,我们将使用负索引访问列表的元素。
代码
# negative indexing example
list = [1,2,3,4,5]
print(list[-1])
print(list[-3:])
print(list[:-1])
print(list[-3:-1])
输出:
5
[3, 4, 5]
[1, 2, 3, 4]
[3, 4]
负索引允许我们获取元素,正如前面提到的。上面代码中的第一个打印语句返回列表中的最右边的项。第二个打印语句返回子列表,依此类推。
更新列表值
由于列表是可变的,并且切片和赋值运算符能够更新它们的值,因此列表是 Python 中最灵活的数据结构。Python 的 append() 和 insert() 方法还可以将值添加到列表中。
考虑以下示例来更新列表内的值。
代码
# updating list values
list = [1, 2, 3, 4, 5, 6]
print(list)
# It will assign value to the value to the second index
list[2] = 10
print(list)
# Adding multiple-element
list[1:3] = [89, 78]
print(list)
# It will add value at the end of the list
list[-1] = 25
print(list)
输出:
[1, 2, 3, 4, 5, 6]
[1, 2, 10, 4, 5, 6]
[1, 89, 78, 4, 5, 6]
[1, 89, 78, 4, 5, 25]
还可以使用 del 关键字删除列表元素。如果我们不知道要从列表中删除哪个元素,Python 还提供了 remove() 方法。
考虑以下示例来删除列表元素。
代码
list = [1, 2, 3, 4, 5, 6]
print(list)
# It will assign value to the value to second index
list[2] = 10
print(list)
# Adding multiple element
list[1:3] = [89, 78]
print(list)
# It will add value at the end of the list
list[-1] = 25
print(list)
输出:
[1, 2, 3, 4, 5, 6]
[1, 2, 10, 4, 5, 6]
[1, 89, 78, 4, 5, 6]
[1, 89, 78, 4, 5, 25]
Python 列表操作
连接(+)和重复(*)运算符与它们在字符串中的工作方式相同。列表的不同操作如下:
- 重复
- 连接
- 长度
- 迭代
- 成员检测
让我们看看列表如何响应各种运算符。
1. 重复
重复运算符允许列表元素重复多次。
代码
# repetition of list
# declaring the list
list1 = [12, 14, 16, 18, 20]
# repetition operator *
l = list1 * 2
print(l)
输出:
[12, 14, 16, 18, 20, 12, 14, 16, 18, 20]
2. 连接
它将运算符两边的列表连接在一起。
代码
# concatenation of two lists
# declaring the lists
list1 = [12, 14, 16, 18, 20]
list2 = [9, 10, 32, 54, 86]
# concatenation operator +
l = list1 + list2
print(l)
输出:
[12, 14, 16, 18, 20, 9, 10, 32, 54, 86]
3. 长度
它用于计算列表的长度。
代码
# size of the list
# declaring the list
list1 = [12, 14, 16, 18, 20, 23, 27, 39, 40]
# finding length of the list
len(list1)
输出:
9
4. 迭代
使用 for - in 循环可以对列表元素进行迭代。
代码
# iteration of the list
# declaring the list
list1 = [12, 14, 16, 39, 40]
# iterating
for i in list1:
print(i)
输出:
12
14
16
39
40
5. 成员检测
如果特定项存在于特定列表中,则它返回 true,否则返回 false。
代码
# membership of the list
# declaring the list
list1 = [100, 200, 300, 400, 500]
# true will be printed if value exists
# and false if not
print(600 in list1)
print(700 in list1)
print(1040 in list1)
print(300 in list1)
print(100 in list1)
print(500 in list1)
输出:
False
False
False
True
True
True
迭代列表
可以使用 for - in 循环来迭代列表元素。一个包含四个字符串的简单列表,可以如下迭代。
代码
# iterating a list
list = ["John", "David", "James", "Jonathan"]
for i in list:
# The i variable will iterate over the elements of the List and contains each element in each iteration.
print(i)
输出:
John
David
James
Jonathan
向列表中添加元素
在 Python 中,可以使用 append() 函数向列表添加新项。另外,append() 函数还可以将项目附加到列表末尾。
考虑下面的示例,其中我们从用户处获取列表的元素,并将列表打印在控制台上。
代码
#Declaring the empty list
l =[]
#Number of elements will be entered by the user
n = int(input("Enter the number of elements in the list:"))
# for loop to take the input
for i in range(0,n):
# The input is taken from the user and added to the list as the item
l.append(input("Enter the item:"))
print("printing the list items..")
# traversal loop to print the list items
for i in l:
print(i, end = " ")
输出:
Enter the number of elements in the list:10
Enter the item:32
Enter the item:56
Enter the item:81
Enter the item:2
Enter the item:34
Enter the item:65
Enter the item:09
Enter the item:66
Enter the item:12
Enter the item:18
printing the list items..
32 56 81 2 34 65 09 66 12 18
从列表中删除元素
在 Python 中,可以使用 remove() 函数从列表中删除元素。要理解这个概念,看看接下来的示例。
示例 -
代码
list = [0,1,2,3,4]
print("printing original list: ");
for i in list:
print(i,end=" ")
list.remove(2)
print("\nprinting the list after the removal of first element...")
for i in list:
print(i,end=" ")
输出:
printing original list:
0 1 2 3 4
printing the list after the removal of first element...
0 1 3 4
Python 列表内置函数
Python 提供了以下内置函数,可与列表一起使用。
- len()
- max()
- min()
len( )
它用于计算列表的长度。
代码
# size of the list
# declaring the list
list1 = [12, 16, 18, 20, 39, 40]
# finding length of the list
len(list1)
输出:
6
max( )
它返回列表的最大元素。
代码
# maximum of the list
list1 = [103, 675, 321, 782, 200]
# large element in the list
print(max(list1))
输出:
782
min( )
它返回列表的最小元素。
代码
# minimum of the list
list1 = [103, 675, 321, 782, 200]
# smallest element in the list
print(min(list1))
输出:
103
让我们来看看一些列表示例。
示例 1: 创建一个程序以删除列表中的重复项。
代码
list1 = [1,2,2,3,55,98,65,65,13,29]
# Declare an empty list that will store unique values
list2 = []
for i in list1:
if i not in list2:
list2.append(i)
print(list2)
输出:
[1, 2, 3, 55, 98, 65, 13, 29]
示例 2: 编写一个程序来计算列表中元素的总和。
代码
list1 = [3, 4, 5, 9, 10, 12, 24]
sum = 0
for i in list1:
sum = sum + i
print("The sum is:", sum)
输出:
The sum is: 67
示例 3: 编写一个程序来查找至少在一个列表中的元素。
代码
list1 = [1, 2, 3, 4, 5, 6]
list2 = [7, 8, 9, 2, 10]
for x in list1:
for y in list2:
if x == y:
print("The common element is:", x)
输出:
The common element is: 2