python入门--切片,迭代,列表生成

切片:

取列表或者元祖中的元素,可以通过索引,但索引只能取一个元素。如果取多个元素,通过循环的话,比较繁琐。而如果用切片,一行代码就解决了。切片是python中比较灵活的选取列表或者元祖中选取元素的方法,当然也可以选择字符串中的元素。

基本的形式是L[start : end],表示从start一值到end的索引元素,间隔是1,包括start索引,不包括end索引。

如果间隔不是1,则可以通过L[start: : end: step]。如果start空缺,表示从0开始;如果end缺失表示一直索引到最后元素。

可以倒叙索引如L[-1],当然也可以倒叙切片。L[-2:]表示L的最后两个元素;L[:-2]表示除去L的最后两个元素剩下的所有元素。倒叙切片也是包括起始索引,不包括结束索引。L=[1,2,3,4]。L[-3:-1] = [2,3]。L[-4:-1:2] = [1,3]。

迭代:

这里的迭代是指:循环遍历list, tuple, dict, set, str中的元素。

索引迭代:

迭代只是取出元素,有时我们想加上索引。可以用enumerate()函数:

L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in enumerate(L):
    print index, '-', name
0 - Adam
1 - Lisa
2 - Bart
3 - Paul

zip()函数:把两个列表变成一个。

>>> zip([10, 20, 30], ['A', 'B', 'C'])
[(10, 'A'), (20, 'B'), (30, 'C')]
dict的value(),和items()方法:

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
print d.values()
# [85, 95, 59]
for v in d.values():
    print v
# 85
# 95
# 59
>>> for key, value in d.items():
...     print key, ':', value
... 
Lisa : 85
Adam : 95
Bart : 59

列表生成:

不用for循环,通过简单的列表生成表达式就可以生成复杂的表达式。

比如:

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

条件过滤:

>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

只有if后面判断为True时才把for循环中的元素加进列表。

也可以多层表达式:

>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值