python基础2-列表

1、列表

1.1 创建列表

Python使用[]表示列表,并用逗号隔开其中的元素

bicycles = ['trek', 'cannodale', 'redline', 'specialized']
print(bicycles)

1.2 访问列表元素

列表是有序的,使用下标访问列表元素,索引下标是从0开始而不是从1开始

同时,Python为访问最后一个列表元素提供了一种特殊语法,通过将索引指定为-1,可以让python返回最后一个元素,同样-2表示倒数第二个元素,以此类推

print(bicycles[0])   //输出列表的首个元素
print(bicycles)      //输出整个列表

1.3 修改,添加和删除元素

1.3.1 修改元素

修改元素,可以直接指定列表名和索引号,然后直接赋予新值即可

bicycles = ['trek', 'cannodale', 'redline', 'specialized']
bicycles[0] = "ducati"
print(bicycles)

1.3.2 在列表中添加元素

  1. 在列表末尾添加元素

    motorcycles = ['honda', 'yamaha', 'suzuki']
    motorcycles.append('ducati')
    print(motorcycles)
    
  2. 在列表中插入元素

    motorcycles = ['honda', 'yamaha', 'suzuki']
    motorcycles.insert(0, 'ducati')
    print(motorcycles)
    
  3. 列表中删除元素

    motorcycles = ['honda', 'yamaha', 'suzuki']
    print(motorcycles)
    
    // 使用del删除元素
    del motorcycles[0]
    print(motorcycles)
    
    // 使用pop()删除元素
    popped_motorcycle = motorcycles.pop()
    print(motorcycles)
    print(popped_motorcycle)
    // 使用pop()弹出任何位置的元素
    first_owned = motorcycles.pop(0)
    print('the first motorcycle I owned was a ' + first_owned.title() + '.')
    
    // remove()函数根据值删除元素
    too_expensive = motorcycles.remove('ducati')
    print(motorcycles)
    

1.4 组织列表

  1. 使用sort()对列表进行永久排序

    // 按字母正序排列
    cars = ['bmw', 'audi', 'toyota', 'subaru']
    cars.sort()
    print(cars)
    
    // 按字母顺序相反进行排序
    cars = ['bmw', 'audi', 'toyota', 'subaru']
    cars.sort(reverse=True)
    print(cars)
    
  2. 使用sorted()对列表进行临时排序

    只临时改变列表中元素的顺序,列表中元素实际顺序保持不变

    cats = ['bmw', 'audi', 'toyota', 'subaru']
    print("here is the original list:")
    print(cars)
    
    print("\nHere is the sorted list:")
    print(sorted(cars))
    
    print("\nHere is the original list again:")
    prin(cars)
    
  3. 使用reverse()倒着打印列表

    注意,reverse()不是按与字母顺序相反的顺序排列列表元素,而只是反正列表元素的排列顺序

    cars = ['bmw', 'toyota', 'subaru', 'audi']
    cars.reverse()
    

1.5 列表长度

使用len()可快速获知列表长度

cars = ['bmw', 'audi', 'toyota', 'subaru']
len(cars)

1.6 遍历列表

使用for循环,遍历列表中的元素

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
  print(magician)

在for循环中,想包含多少行代码都可以,但是要注意缩进。

python根据缩进来判断行与前一个代码行的关系。注意不要忘记for语句最后的冒号:

1.7 创建数值列表

1.7.1 使用range()

  1. 生成数字

    range(first_num, last_num)函数可以轻松生成一系列的数字, 打印出的为[first_num, last_num),不包含last_num

for value in range(1, 5)
print(value)              // 该条语句只会打印1, 2, 3, 4 不包含5
  1. 创建数组列表

    numbers = list(range(1, 6))
    print(numbers)
    
  2. 使用range()时,还可以制定步长

    even_numbers = list(range(2, 11, 2))
    print(even_numbers)  // 打印从2到10的偶数
    

1.8 对数字进行简单的统计计算

digits = [1, 2, 3, 4, 5, 6, 7, 8, 9]
// 最小值
min(digits)
max(digits)
sum(digits)

1.9 列表解析

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

squares = [value*2 for value in range(1, 11)]

// 表达式为value*2
// 编写一个for循环,用于给表达式提供值

1.10 使用列表的一部分

1.10.1 切片定义

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与range()一样,python在到达指定的第二个索引前面的元素后停止。

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

1.10.2 遍历切片

使用for循环使用切片

players = ['charles', 'martina', 'michael', 'florence', 'eli']

for player in players [:3]:
  print(player.title())

1.11 复制列表

复制列表,可创建一个包含整个列表的切片,方法是同时省略其实索引和终止索引([:])。这让python创建一个起始于第一个元素,终止于最后一个元素的切片,即复制整个列表

my_foods = ['pizza', 'falafel', 'carrot']
firend_foods = my_foods[:]

print("My favorite foods are:")
print(my_foods)

print("\nMy friend`s favorite foods are:")
print(frient_foods)

// 注意与以下情况的区别, 这种不是将my_foods的副本存放在friend_foods中
// 可以只简单理解为friend_foods指针指向了my_foods
friend_foods = my_foods

1.12 元组

1.12.1 定义元组

元组为一系列不可修改的元素

dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])

1.12.2 遍历元组

像列表一样,也可以使用for循环来遍历元组中的所有值

dimensions = (200, 50)
for dimension in dimensions:
  print(dimension)

1.12.3 修改元组变量

虽然不能改变元组的元素,但可以给存储元组的变量赋值

dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
  print(dimension)
  
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
  print(dimension)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容