在Python中使用列表和字典
列表和字典是Python中最常使用的数据结构之一,用于数据存储和排列。本教程将解释如何对列表和字典进行访问、修改等操作。
前提条件
要继续学习本教程,你需要有一些 Python 的知识。
创建一个列表
列表使你能够就地存储一组项目。列表在其它语言中采取数组的形式,如 Java。
Python 中的列表是用以下语法创建的。
listname = [item1, item2, item3, ...]
下面是一个汽车列表的例子。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
print(cars) # ['Volvo', 'Subaru', 'Skyline', 'Ford']
访问列表中的元素
你可以使用方括号符号访问列表中的元素。指数从 0 开始,而不是从 1 开始,因此列表中的第一个项目的索引是 0,而不是 1。
访问列表中的元素的语法如下所示。
listname = [item1,item2,item3]
print(listname[indexvalue])
下面的代码要求获得索引为 0 和 3 的汽车。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
print(cars[0]) # Volvo
print(cars[3]) # Ford
Python 有一个独特的方法来获取列表中的最后一个项目。如果你打印一个位于索引 -1 的项目,Python 会返回列表中的最后一个项目。索引 -2,-3 和 -4 分别给出倒数第二、倒数第三和倒数第四项。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
print(cars[-1]) # Ford
改变列表中的元素
要改变列表中的一个项目,我们可以使用方括号符号分配一个新值。
例如,在我们的汽车列表中,第二项是Subaru 。让我们把这个值改为Suzuki 。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
print(cars) # ['Volvo', 'Subaru', 'Skyline', 'Ford']
cars[1]='suzuki'
print(cars) # ['Volvo', 'Suzuki', 'Skyline', 'Ford']
向列表中添加元素
要在列表的最后添加新的元素,请使用.append() 方法。
例如,让我们把Audi 添加到我们的汽车列表中。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
cars.append('Audi') # adds 'Audi' at the end of the list
print(cars) # ['Volvo', 'Subaru', 'Skyline', 'Ford', 'Audi']
你也可以使用.insert() 方法在列表的任何位置添加一个新的项目,只要指定新项目的位置和值。
让我们看一下这个例子。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
cars.insert(2,'Audi') # adds 'Audi' at the beginning of the list (at index 2)
print(cars) # ['Volvo', 'Subaru', 'Audi', 'Skyline', 'Ford']
列表中所有其他的值都被移到了右边。
从列表中删除元素
如果你想去掉的项目的位置是已知的,你可以使用del 语句。
例子。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
del cars[0]
print(cars) # ['Subaru', 'Skyline', 'Ford']
第一辆汽车,即Volvo ,被从列表中删除。
如果你想删除的项目的价值是已知的,可以使用.remove() 方法。
为了说明这一点,让我们从我们的汽车列表中删除项目Subaru 。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
cars.remove('Subaru') # removes Subaru from the list
print(cars) # ['Volvo', 'Skyline', 'Ford']
注意:当一个值在列表中出现多次时,
.remove()方法只删除该值的第一次出现。
对一个列表进行排序
排序是根据某种依据来组织你的列表,例如,倒序、升序或字母顺序。
要对一个列表进行排序,请使用.sort() 方法。为了更好地理解这一点,让我们按字母顺序排列我们的汽车列表。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
cars.sort() # arranges the list alphabetically
print(cars) # ['Ford', 'Skyline', 'Subaru', 'Volvo']
.reverse() 方法是用来颠倒列表的顺序的。例如,让我们反向打印我们的汽车列表。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford']
cars.reverse()
print(cars) # ['Ford', 'Skyline', 'Subaru', 'Volvo']
注意:
.reverse()并不是按字母逆向排序。它只是颠倒了列表的顺序。
分割列表
要导出一个片段,你需要指定第一个元素的索引和停止切分的位置。
在 Python 中,我们使用冒号 (:) 作为切分操作符。切片遵循以下语法。
list_name[Index_start:Index_end]
例如,当你请求[0:3] 时,Python 返回索引为 0、1 和 2 的项目。
为了说明这一点,让我们看一下下面的代码。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford', 'Isuzu']
print(cars[0:3]) # ['Volvo', 'Subaru', 'Skyline']
当你在一个片断中排除起始索引时,Python 会自动从列表的起始处开始片断。同样地,如果你省略了最后一个索引,Python 会返回列表中从第一个索引开始的所有元素。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford', 'Isuzu']
print(cars[:3]) # ['Volvo', 'Subaru', 'Skyline']
print(cars[3:]) # ['Ford', 'Isuzu']
循环浏览一个列表
为了对一个列表中的每个元素执行动作,我们可以使用for 循环。
例如,假设我们有一个汽车的列表,我们想把汽车列表中的每个名字拉出来。
cars = ['Volvo', 'Subaru', 'Skyline', 'Ford', 'Isuzu'] # initiate the list
for car in cars:
print(car)
# Volvo
# Subaru
# Skyline
# Ford
# Isuzu
这一行。for car in cars,告诉 Python 从汽车列表中取出一辆汽车,并将其保存在变量car 中。这一行。print (car)然后打印出存储在变量car 中的名字。这一行对每个项目都要重新执行。
字典
在 Python 中,字典是一组key:value 对,每个键都与一个值相连。一个 dictionary 用大括号{} 围住,里面有一系列key:value 对。
一个 dictionary 的语法如下。
dict_name={
key:value,
key:value}
例子。
stock_1={
'type':'Volvo',
'color':'Black'
}
print(stock_1) # {'type': 'Volvo', 'color': 'Black'}
访问一个字典中的值
你可以使用方括号符号访问值。要获得一个值,把它的相关键放在方括号内,如下所示。
stock_1={
'type':'Volvo',
'color':'Black'
}
print(stock_1['type']) # Volvo
向字典中添加项目
要在 dictionary 中增加一个新的项目,要给一个新的 key 赋予一个值。让我们在我们的stock_1 字典中添加一个新的键:year ,并给它赋值2014 。
stock_1={
'type':'Volvo',
'color':'Black'
}
print(stock_1) # prints the initial dictionary
stock_1['year']=2014 # Adding a new key:value
print(stock_1) # returns the modified dictionary
改变字典中的值
你可以通过参考它的键名来改变 dictionary 中的一个值。
例如,让我们把 stock_1 字典中year 的值从2014 改为2021 。
stock_1={
'type':'Volvo',
'color':'Black',
'year':2014
}
stock_1['year']=2021 # change the value of year from 2014 to 2021
print(stock_1) # {'type': 'Volvo', 'color': 'Black', 'year': 2021}
从字典中删除 key:value 对
要删除一个key:value 对,你可以使用del 语句。在del 语句中给出你要删除的键和字典的名称。例如,让我们删除我们的stock_1 字典中的键color 。
stock_1={
'type':'Volvo',
'color':'Black',
'year':2014
}
del stock_1['color'] # removes the key `color` and its value `Black`
print(stock_1) # {'type': 'Volvo', 'year': 2014}
Python 会删除键color 和它的相关值Black 。字典的其它部分保持原样。
循环浏览一个 dictionary
要访问存储在 dictionary 中的所有内容,可以用一个for 循环来遍历 dictionary。
假设我们有存储在汽车字典中的名称和型号,我们可以使用for 循环访问每辆汽车的名称和型号,如下所示。
cars={
'Volvo':'V90',
'Skyline':'R32',
'Subaru':'2019WRX'
}
for name, model in cars.items(): # method `item()` returns a list of key value pairs
print(name, ":", model)
# Volvo : V90
# Skyline : R32
# Subaru : 2019WRX
在上面的例子中,for 循环将键存储在变量name 中,其值存储在变量model 中。
总结
在本教程中,我们已经对列表和字典有了一定的了解,知道如何。
- 访问、改变和删除列表和字典中的元素。
- 循环浏览字典和列表。
- 对列表进行排序和切分。