Python3 列表

逆流者 2020年10月30日 98次浏览

列表是什么

列表是一系列按特定顺序排列的元素, 可以包含字母, 数字. 类似java中的数组
使用[]表示列表.

访问列表元素

bicycles = ['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']
print(bicycles)

结果:

['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']

索引从0而不是从1开始

bicycles = ['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']
# 可以直接使用, 下表从0开始
print(bicycles[0])
print(bicycles[0].title())

可以看到打印的第一个元素

tom
Tom

由结果看出, bicycles[0]就是列表中第一个元素, 可以直接使用

还有一种特殊语法, 索引指定为-1

# -1, -2,等等在bicycles[-1] 中的用法: bicycles[-1] 表示返回最后一个元素, 当然-2 就是返回倒数第二个元素
print(bicycles[-1])

返回最后一个元素:

xiaoming

修改、添加和删除元素

修改列表元素

bicycles = ['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']
# 修改列表中的元素
print("修改之前:")
print(bicycles)
bicycles[1] = 'jerry2'
print("修改之后:")
print(bicycles)

运行它:

修改之前:
['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']
修改之后:
['tom', 'jerry2', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']

可以看到第二元素被修改了

在列表中添加元素

  • 末尾添加 append(要添加的元素)
  • 插入添加 insert(下标, 要添加的元素) 下边从0开始
# 添加元素
# 末尾添加
bicycles = ['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']
print("末尾添加之前:")
print(bicycles)
bicycles.append('xiaoqiang')
print("末尾添加之后:")
print(bicycles)
# 插入元素
bicycles.insert(0, 'tiger')
print("插入添加之后:")
print(bicycles)

运行结果:

末尾添加之前:
['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming']
末尾添加之后:
['tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming', 'xiaoqiang']
插入添加之后:
['tiger', 'tom', 'jerry', 'jerry5', 'xiaohong', 'jerry5', 'xiaoming', 'xiaoqiang']

从列表中删除元素

使用del语句删除元素

# del 语句
names = ['tom', 'jerry', 'tiger', 'Davis']
print("删除元素之前:")
print(names)
del names[0]
print("删除元素之后:")
print(names)

运行它:

删除元素之前:
['tom', 'jerry', 'tiger', 'Davis']
删除元素之后:
['jerry', 'tiger', 'Davis']

使用pop()方法删除元素

# pop() 弹出列表最后的元素
names = ['tom', 'jerry', 'tiger', 'Davis']
print("弹出元素之前:")
print(names)
name1 = names.pop()
print("弹出元素之后:")
print(names)
print("pop的元素:" + name1)

运行结果:

弹出元素之前:
['tom', 'jerry', 'tiger', 'Davis']
弹出元素之后:
['tom', 'jerry', 'tiger']
pop的元素:Davis

弹出列表中任意位置的元素

# pop(0) 弹出指定位置元素, 0是第一个元素下标
names = ['tom', 'jerry', 'tiger', 'Davis']
print("弹出指定位置元素之前:")
print(names)
name2 = names.pop(0)
print("弹出指定位置元素之后:")
print(names)
print("pop的指位置的元素:" + name2)

运行结果:

弹出指定位置元素之前:
['tom', 'jerry', 'tiger', 'Davis']
弹出指定位置元素之后:
['jerry', 'tiger', 'Davis']
pop的指位置的元素:tom

根据值删除元素

# remove(指定的元素) 根据元素的值删除元素, 只会删除列表中的第一个
names = ['tom', 'jerry', 'tiger', 'Davis']
print("删除指定元素之前:")
print(names)
names.remove('tiger')
print("删除指定元素之后:")
print(names)

运行结果:

删除指定元素之前:
['tom', 'jerry', 'tiger', 'Davis']
删除指定元素之后:
['tom', 'jerry', 'Davis']

组织列表

使用方法sort()对列表进行永久性排序

# 按照字典顺序
# sort() 永久排序, 默认正序
cars = ['bmw', 'audi', 'toyota', 'subaru']
print('原始列表:')
print(cars)
cars.sort()
print('顺序:')
print(cars)
# 逆序
cars.sort(reverse=True)
print('逆序:')
print(cars)

运行结果:

原始列表:
['bmw', 'audi', 'toyota', 'subaru']
顺序:
['audi', 'bmw', 'subaru', 'toyota']
逆序:
['toyota', 'subaru', 'bmw', 'audi']

使用方法sorted()对列表进行临时排序

# sorted() 临时排序, 也可以使用reverse=True
cars = ['bmw', 'audi', 'toyota', 'subaru']
print('原始列表:')
print(cars)
print('临时排序后列表: ')
print(sorted(cars))
print("再次查看列表: ")
print(cars)

运行结果:

原始列表:
['bmw', 'audi', 'toyota', 'subaru']
临时排序后列表: 
['audi', 'bmw', 'subaru', 'toyota']
再次查看列表: 
['bmw', 'audi', 'toyota', 'subaru']

倒着打印列表

reverse() 是反转列表元素的排列顺序, 是永久性的.

# 倒着打印
cars = ['bmw', 'audi', 'toyota', 'subaru']
print('原始列表:')
print(cars)
cars.reverse()
print('倒着打印列表:')
print(cars)

运行结果:

原始列表:
['bmw', 'audi', 'toyota', 'subaru']
倒着打印列表:
['subaru', 'toyota', 'audi', 'bmw']

确定列表长度

使用len(列表)函数

# len() 长度
cars = ['bmw', 'audi', 'toyota', 'subaru']
print('原始列表:')
print(cars)
print(len(cars))

运行结果:

原始列表:
['bmw', 'audi', 'toyota', 'subaru']
4

使用列表是避免索引错误

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

列表cars只有4个元素, 打印第5个元素会报IndexError
列表第一个元素的下标是从0开始的

Traceback (most recent call last):
  File "/Users/wushanghui/Documents/code/codechina/python3-learn/base/bicycles.py", line 89, in <module>
    print(cars[4])
IndexError: list index out of range

Python3 目录

  1. Python3 教程
  2. Python3 变量和简单数据类型
  3. Python3 列表
  4. Python3 操作列表
  5. Python3 if 语句
  6. Python3 if 字典
  7. Python3 用户输入和while循环
  8. Python3 函数
  9. Python3 类
  10. Python3 文件和异常
  11. Python3 测试代码
  12. Python3 使用matplotlib绘制图表
  13. Python3 使用Pygal生成矢量图形文件
  14. Python3 使用csv模块处理CSV(逗号分割的值)格式存储的天气数据
  15. Python3 处理JSON格式数据(制作交易收盘价走势图)
  16. Python3 使用API