欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python——列表基础语法

程序员文章站 2023-12-24 15:23:03
列表相当于其他语言中的数组,其重要性不言而喻,所以熟练掌握Python中的列表至为重要。 ......

字符串列表

说明:

列表相当于其他语言的数组。其定义举例如下:

name = ['honda', 'yamaha', 'suzuki']

列表的索引从0开始,也可以用-1表示最后一项,而-2表示倒数第二项,例如:

print(name[0])    # 'honda'
print(name[-1])   # 'suzuki'

方法和函数:

  • append():从列表的最后位置插入新的元素
  • insert():在列表的任意位置添加新元素,为此需要提供新元素的索引和值
    name.append('ducati')        # ['honda', 'yamaha', 'suzuki', 'ducati']
    name.insert(1, 'ducati')     # ['honda', 'ducati', 'yamaha', 'suzuki']

     

  • del:如果知道要删除的元素的索引,可以用del语言删除该元素,删除后的元素无法再访问
  • pop():无参数时删除列表末尾的元素,并返回该元素。相当于弹出栈顶元素;有参数时,弹出以该参数作为索引的元素,并返回该元素
  • del语法删除的元素无法再被访问,而pop()函数可以返回被删除的元素
  • del name(1)            # ['honda', 'suzuki']
    popped_motorcycle = motorcycles.pop(1) 
    print(popped_motorcycle)  # 'yamaha'

     

  • remove():根据值删除列表中的第一个值
    name.remove('yamaha')        # ['honda', 'suzuki']
  • sort():排序,sort(reverse=True)将以方法相反的方向排序
  • 函数sorted()排序,sorted(reverse=True)反向排序
  • 不同点:方法sort()将改变原列表的元素位置,而函数sorted()返回一个新的已经排好序的列表,原列表中的元素位置没有改变
    cars = ['bmw', 'audi', 'toyota', 'subaru']
    print(sorted(cars, reverse=True))
    print(cars)
    cars.sort()
    print(cars)
    ['toyota', 'subaru', 'bmw', 'audi']
    ['bmw', 'audi', 'toyota', 'subaru']
    ['audi', 'bmw', 'subaru', 'toyota']
  • reverse()反转列表元素的排列顺序,第一个放到最后一个,如此类推
  • 函数len()返回列表的长度

数值列表

可以使用for循环遍历列表

cars = ['bmw', 'audi', 'toyota', 'subaru']
for car in cars:
    print(car.title())

使用函数range()可以生成一系列的数字,例如range(1, 10)将生成1到9之间的数字,注意该系统数字不包括range()最后一个参数所指定的数值。由上可知,C语言中的for(int i = 0; i < 10; i++)可以改成python中的for index in range(0, 10):

使用range()时,还可以创建步长,例如创建一个以2开始,步长为2的列表

even_numbers = list(range(2,11,2))
print(even_numbers)        # [2, 4, 6, 8, 10]

对数值列表可以使用mix,max,sum等函数来计算该列表的最小值、最大值和总和

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
4

列表解析

可以通过列表解析快速的创建一个需要通过计算而形成的列表,例如包含1~10的平方列表

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

注意:for语句后面不要加冒号(:)

切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。例如:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
    print(players[0:3])  # ['charles', 'martina', 'michael']

和range()函数一样,切片处理的元素包含第一个参数指定的索引,不包含第二个参数指定的索引。如果省略第一个参数,表示从头切片,上例也可以表示为players[:3],如果省略第二个参数,表示从第一个参数指定索引开始提取出到列表末尾的所有元素。

也可以使用负数表示从后切片,例如:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])  # ['michael', 'florence', 'eli']

复制列表

使用同时省略开始索引和结束索引的切片来复制列表。这样将复制出两份独立的列表,如果直接将原列表赋值给新的列表,两个变量将指向同一个列表

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoil')
friend_foods.append('ice sream')
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)

# 输出
# My favorite foods are:
# ['pizza', 'falafel', 'carrot cake', 'cannoil']

# My friend's favorite foods are:
# ['pizza', 'falafel', 'carrot cake', 'ice sream']
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append("cannoil")
print(my_foods)
print(friend_foods)

# 输出
# ['pizza', 'falafel', 'carrot cake', 'cannoil']
# ['pizza', 'falafel', 'carrot cake', 'cannoil']

 

上一篇:

下一篇: