从未使用过的 Python 特性

1. 按步长取数

知识点: list[start:stop:step]

start: 开始索引, 默认为0
end: 结束索引, 默认为列表长度
step: 步长, 默认为1, 可以为负数, 如果为负数, 则为倒序.
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(data[::2]) # [1, 3, 5, 7, 9]
print(data[::-1]) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
print(data[2:7:-2]) # [] ⚠️注意:步长为负数时,结果为空
print(data[7:1:-2]) # [8,6,4] # ⚠️ index 属于 [7 -> 1),步长为2。

2. find 方法

知识点:list.find(obj, [start, [stop]])

list: 列表或者字符串
obj: 查找的元素
start: 开始索引, 默认为0
stop: 结束索引, 默认为列表长度
找不到返回-1

x = "Hello From Python"
print(x.find("o")) # 4
print(x.find("o", 5)) # 8
print(x.find("From Python")) # 6
print(x.find("No exist")) # -1

3. iter() 和 next()

# iter() 函数用于将一个可迭代对象转换为一个迭代器
# next() 函数用于获取迭代器的下一个返回值
values = [1, 3, 4, 6]
values = iter(values)
print(next(values)) # 1
print(next(values)) # 3
print(next(values)) # 4
print(next(values)) # 6
print(next(values)) # StopIteration

4、yield 语句

yield 语句是 Python 的另一个令人惊奇的特性,它的工作方式类似于 return 语句。但它不是终止函数并返回,而是返回到它返回给调用者的地方。
yield 返回的是一个生成器。可以使用 next() 函数来获取生成器的下一个值。也可以使用 for 循环来遍历生成器。

def func():
    print(1)
    yield "a"
    print(2)
    yield "aa"
    print(3)
    yield "aaa"

print(list(func())) ## ['a', 'aa', 'aaa']
for x in func():
    print(x)

5、f-string的强大

a = "Python"
b = "Job"
# Way 1
string = "I looking for a {} Programming {}".format(a, b)
print(string) # I looking for a Python Programming Job
#Way 2
string = f"I looking for a {a} Programming {b}"
print(string) # I looking for a Python Programming Job
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值