python技巧分享(十一)

17 篇文章 0 订阅
15 篇文章 0 订阅

这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。

1 遍历list时每次读取2个元素

my_list = [0, 'apple', 1, 'banana', 2, 'grape', 3, 'pear']
my_iter = iter(my_list)
for e in my_iter:
    print e, next(my_iter)

'''
0 apple
1 banana
2 grape
3 pear
'''

借助iter函数,传入list生成一个迭代器,然后遍历该迭代器,并调用next函数输出迭代器的下一个元素,到达每次读取list中2个元素的目的。需要说明一下,list的元素最好是偶数个,否则读取最后一对元素时,会由于迭代器元素已经读取完毕,导致抛出StopIteration异常。

2 split字符串时忽略引号中的空格

import shlex

my_str = 'a b c "d e f" g'
print shlex.split(my_str)
# ['a', 'b', 'c', 'd e f', 'g']

print my_str.split()
# ['a', 'b', 'c', '"d', 'e', 'f"', 'g']

示例中,通过shlex.split函数,在split带有引号的字符串时,会自动忽略引号中的空格,将引号中的字符串当成一个完整字符串。如果使用字符串自带的split函数,会发现引号中字符串被split成3段。如果字符串中有空格,且想单独split成一个元素,可以通过该方式实现。

3 遍历list时同时获取索引和值

my_list = ['a', 'b', 'c', 'd']
for idx, ch in enumerate(my_list):
    print idx, ch

print '-' * 3

for idx, ch in enumerate(my_list, 1):
    print idx, ch

'''
0 a
1 b
2 c
3 d
---
1 a
2 b
3 c
4 d
'''

有时遍历list需要获取元素的索引,借助enumerate函数,可以轻易实现该功能,并且enumerate函数还可以指定索引的初始值。由示例中可以看到,当指定了索引的起始值为1时,索引在1的基础之上依次自增,默认索引是从0开始,所以可以同时获取list元素的索引和值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值