专栏首页LEo的网络日志python技巧分享(十一)

python技巧分享(十一)

这是一个系列文章,主要分享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元素的索引和值。

LEo at 00:05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python技巧分享(十一)

    songleo
  • python技巧分享(十)

    songleo
  • python技巧分享(三)

    songleo
  • python技巧分享(十一)

    songleo
  • 第十三节、Python按照索引访问list《Python学习》

    由于list是一个有序集合,所以,我们可以用一个list按分数从高到低表示出班里的3个同学:

    申霖
  • 10 个不为人知的Python冷知识

    这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。

    昱良
  • 10个不为人知的 Python 冷知识

    这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。

    昱良
  • 谈谈Python那些不为人知的冷知识(二)

    从上一篇的分享来看,仍然有不少 Pythoner 对这些冷知识存在盲区,所以今天迎来第二篇。

    AI科技大本营
  • python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域

    在 python 中赋值语句总是建立对象的引用值,而不是复制对象。因此,python 变量更像是指针,而不是数据存储区域, ? 这点和大多数 OO 语言类似吧,...

    用户1177713
  • Dart数组的常规操作

    任我行RQ

扫码关注云+社区

领取腾讯云代金券