Python 的一些高级特性

Python 的一些高级特性

Python slicing 切片

序列及其下标表示:

>>> +---+---+---+---+
>>> |-4 |-3 |-2 |-1 |  <= negative indexes
>>> +---+---+---+---+
>>> | A | B | C | D |  <= sequence elements
>>> +---+---+---+---+
>>> | 0 | 1 | 2 | 3 |  <= positive indexes
>>> +---+---+---+---+

语法:

slice(stop)
slice(start, stop[, step])
sequence [start:stop[:step]]
  • start
    Optional. Starting index of the slice. Defaults to 0.
  • stop
    Optional. Defaults to len(sequence).
  • step
    Optional. Extended slice syntax. Step value of the slice. Defaults to 1.

例子一,访问:

>>> "ABCD"[1:]
'BCD'
>>> "ABCD"[:3]
'ABC'
>>> "ABCD"[1:3]
'BC'
>>> "ABCD"[1:3:]
'BC'
>>> "ABCD"[::2]
'AC'
>>> "ABCD"[::]
'ABCD'
>>> "ABCD"[:]
'ABCD'

例子二,增删:

>>> # slices can be used to replace multiple items
>>> l = [0, 1, 2, 3]
>>> l[:2] = ("AB", "CD")
>>> l
['AB', 'CD', 2, 3]

>>> l = [0, 1, 2, 3]
>>> l[1:2] = (7, 8, 9, 10)
>>> l
[0, 7, 8, 9, 10, 2, 3]

>>> # deleting items
>>> l = [0, 1, 2, 3]
>>> del l[::2]
>>> l
[1, 3]

参考:
https://docs.python.org/3/library/functions.html#slice
https://python-reference.readthedocs.io/en/latest/docs/brackets/slicing.html

迭代 iter

Python中的迭代是通过 for..in 实现的。

列表推导 list comprehension

例子:

# coding=utf-8
__author__ = 'Z'

result = ["0x%02x" % x for x in range(256) if x % 2 != 0]
print result


运行结果:
['0x01', '0x03', '0x05', '0x07', '0x09', '0x0b', '0x0d', '0x0f', '0x11', '0x13', '0x15', '0x17', '0x19', '0x1b', '0x1d', '0x1f', '0x21', '0x23', '0x25', '0x27', '0x29', '0x2b', '0x2d', '0x2f', '0x31', '0x33', '0x35', '0x37', '0x39', '0x3b', '0x3d', '0x3f', '0x41', '0x43', '0x45', '0x47', '0x49', '0x4b', '0x4d', '0x4f', '0x51', '0x53', '0x55', '0x57', '0x59', '0x5b', '0x5d', '0x5f', '0x61', '0x63', '0x65', '0x67', '0x69', '0x6b', '0x6d', '0x6f', '0x71', '0x73', '0x75', '0x77', '0x79', '0x7b', '0x7d', '0x7f', '0x81', '0x83', '0x85', '0x87', '0x89', '0x8b', '0x8d', '0x8f', '0x91', '0x93', '0x95', '0x97', '0x99', '0x9b', '0x9d', '0x9f', '0xa1', '0xa3', '0xa5', '0xa7', '0xa9', '0xab', '0xad', '0xaf', '0xb1', '0xb3', '0xb5', '0xb7', '0xb9', '0xbb', '0xbd', '0xbf', '0xc1', '0xc3', '0xc5', '0xc7', '0xc9', '0xcb', '0xcd', '0xcf', '0xd1', '0xd3', '0xd5', '0xd7', '0xd9', '0xdb', '0xdd', '0xdf', '0xe1', '0xe3', '0xe5', '0xe7', '0xe9', '0xeb', '0xed', '0xef', '0xf1', '0xf3', '0xf5', '0xf7', '0xf9', '0xfb', '0xfd', '0xff']

generator


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值