Python列表2

如何使用列表元素。列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。

列表的表示

  • 用方括号 [ ] 来表示列表,并用逗号来分隔其中的元素。
  • 索引从0开始,用-1可表示倒数第一个元素 bicycles[-1]
>>>bicycles = ['trek', 'cannondale', 'redline', 'specialized']
>>>print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']

修改、添加和删除元素

修改元素

>>>motorcycles = ['honda', 'yamaha', 'suzuki']
>>>motorcycles[0] = 'ducati'
print(motorcycles)

添加元素

  • 末尾添加元素append( )
  • 在列表中插入元素insert()
>>>motorcycles = ['honda', 'yamaha', 'suzuki']
>>> motorcycles.insert(0, 'ducati')
>>>print(motorcycles)
['ducati', 'honda', 'yamaha', 'suzuki']

删除元素

  • 知道要删除的元素在列表中的位置,可使用del语句
>>>motorcycles = ['honda', 'yamaha', 'suzuki']
>>>del motorcycles[0]
>>>print(motorcycles)
['yamaha', 'suzuki']
  • 方法pop() 可删除列表末尾的元素,或者在括号中指定要删除的元素的索引,使用后有返回值

如果你不确定该使用del语句还是pop()方法,下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()

  • 方法remove() 根据值删除元素(也是无返回值)
>>>mess = ['a','b','c']
>>>mess.remove('a')
>>>print(mess)
['b','c']

排序

  • 方法 sort() 对列表进行永久性排序(按字母顺序排列,相反顺序用只需加sort(reverse=True))
  • 函数 sorted() 对列表进行临时排序
  • 方法reverse() 反转列表元素的排列顺序,永久性

确认长度

  • 函数len()可快速获悉列表的长度

Python计算列表元素数时从1开始,因此确定列表长度时,你应该不会遇到差一错误



操作列表

遍历列表

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
  • 函数list() 将这些数字转换为一个列表
numbers = list(range(1,6))
print(numbers)

[1, 2, 3, 4, 5]

还能指定步长

even_numbers = list(range(2,11,2))
print(even_numbers)

[2, 4, 6, 8, 10]

常用计算函数

  • 最大值:max()
  • 最小值:min()
  • 求和:max()

列表解析(简化生成列表)

f=[]
for i in range(1,11):
	f.append(i**3)
print(f)

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

可简化为:

f=[i**3 for i in range(1,11)]
print(f)

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

切片

为了更加方便的提取元素,而不用循环一遍一遍提取

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])#从0开始3个元素
print(players[:3])#从头开始3个元素
print(players[1:])#从1开始到结尾
print(players[-2:])#最后2个元素

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

列表复制的问题

复制一个列表,如果不用切片赋值,而直接等于,相当于指针,则2个列表指向同个元素

my_foods = ['pizza', 'falafel', 'carrot cake']
#这行不通
friend_foods = my_foods

用了切片相当于新建了副本复制出去:

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]

思考题

  • 打印消息“Three items from the middle of the list are:”,再使用切片来打印列表中间的三个元素。

元组

  • 元组不能单独修改元素值,使用圆括号来标识
  • 但可以重新定义整个变量

代码规范

  • PEP 8建议每级缩进都使用四个空格
  • 建议每行不超过80字符
  • 注释的行长都不超过72字符
  • 要将程序的不同部分分开,可使用空行,一行足矣不要用三四个空行

原文链接:PEP8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值