Python3 操作列表

逆流者 2020年11月02日 99次浏览

遍历整个列表

for <variable> in <sequence>:
    <statements>
  • 不要遗漏冒号
  • 循环体中不要忘记缩进

具体示例:

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

执行结果:

alice
david
carolina

创建数字列表

使用函数range()

for value in range(1, 5):
	print(value)

结果:

1
2
3
4

根据打印结果, 可以看出函数range(1, 5)的含义是左闭右开, 也就是 1 <= value < 5, value 为整数.

使用range()创建数字列表

list()函数可以将range()生成的一些列数字转成列表

numbers = list(range(1, 6))
print(numbers)

结果:

[1, 2, 3, 4, 5]

rang()函数可以指定步长

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

使用函数range()几乎可以创建任意需要的数字集

squares = []
for value in range(1, 11):
	square = value**2
	squares.append(square)

print(squares)

生成的结果集:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

对数字列表执行简单的统计计算

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

列表解析

可以看到前面的生成squares列表需要好几行代码, 使用列表解析一行代码就能搞定.

语法: <list_name> = [<statements> for <variable> in <sequence>]

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

使用列表的一部分

切片

# 使用列表的一部分- 切片
players = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(players[0:3]) 
print(players[1:4])
print(players[:4])  # 不指定, 从列头开始
print(players[2:])  # 不指定, 到列尾
print(players[-3:])  # 返回最后3个

结果:

['a', 'b', 'c']
['b', 'c', 'd']
['a', 'b', 'c', 'd']
['c', 'd', 'e', 'f', 'g']
['e', 'f', 'g']

遍历切片

# 遍历切片
for player in players[:3]:
	print(player)
a
b
c

复制列表

要想复制列表, 可创建一个包含整个列表的切片, 使用[:]同时省略起始索引和终止索引.

# 复制列表
my_foofs = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foofs[:]
my_foofs.append('cannoli')
friend_foods.append('ice cream')
print("我喜欢的食物是: ")
print(my_foofs)
print('\n我朋友喜欢的食物是: ')
print(friend_foods)

测试结果:

我喜欢的食物是: 
['pizza', 'falafel', 'carrot cake', 'cannoli']

我朋友喜欢的食物是: 
['pizza', 'falafel', 'carrot cake', 'ice cream']

上面是使用切片来复制的列表, 如果不使用切片呢? 直接friend_foods = my_foofs 这样是不行的, 这种做法是将my_foofs 赋值给了friend_foods, 这两个指向的是同一个列表

元祖

元祖, 不可变的数据集.

定义元祖

# 元祖 不可变
dimensions = (200, 500)
print(dimensions)
print(dimensions[0])
print(dimensions[1])
# dimensions[0] = 300 # 不能修改, 会报错  
(200, 500)
200
500

元祖不能修改, 会报错

Traceback (most recent call last):
  File "/Users/wushanghui/Documents/code/codechina/python3-learn/base/for.py", line 62, in <module>
    dimensions[0] = 300 # 不能修改, 会报错
TypeError: 'tuple' object does not support item assignment

遍历元祖中的所有值

# 遍历元祖                 
for dimension in dimens
	print(dimension)   
200
500

修改元祖变量

虽然元祖不能修改, 但是可以给存储元祖的变量赋值一个新的元祖

print('original: ')
for dimension in dimensions:
	print(dimension)

print('modified: ')
dimensions = (100, 200)
for dimension in dimensions:
	print(dimension)    
original: 
200
500
modified: 
100
200

设置代码格式

  • 缩进: 建议每级缩进使用4个空格
  • 行长: 建议每行不超过80个字符
  • 空行: 建议不同部分使用一个空行隔开
  • 其他格式: 关注PEP 8

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