【python常见tips】

三元表达式

其他语言的三元表达式
result = 判定条件? 为真时的结果:为假时的结果
result = 5>3? 1:0             # 条件为真是result赋值为1,条件为假时赋值为0
Python中的三元表达式
result = 为真时的结果 if 判断条件 else 为假时的结果
 result = x if x > y else y # 如果条件成立,将x的值赋给result

变种

cond = True
name = ["Cat", "Tom"][bool(cond)]
#'Tom'

生成器

可迭代的对象:生成器、元组、列表、集合、字典、字符串
可以被next()函数调用,不断返回下一个值得对象称为迭代器:Iterator。
通过iter()函数将可迭代的变成一个迭代器

yield关键字

只要函数中出现了yield关键字,说明函数就不是函数了,是一个生成器,借助于next()获得元素

def f():
    i = 0
    while True:
        i+=1
        n = i*3
        yield n
g = f()
print(g)# generator
print(next(g))# 3

通过列表推导式得到生成器

通过使用g.next()方式得到元素,或者使用next(g)得到元素,每调用一次则会产生一个元素。
若生成器产生的元素用完,继续调用则会抛出异常StopIteration
利用try…except的方式解决异常

g = (x*3 for x in range(10))
while True:
    try:
        e = next(g)
        print(e)
    except:
        print('没有更过元素了')
        break

数据类型相互转换

从 float 到 int 的转换,值将会被截断(使其接近零)

python更改默认递归深度

Python递归深度默认最大900多

def fib(n):
    if n == 1:
        return 1
    else:
        return n*fib(n-1)
print(fib(1000))#就会报错
import sys
sys.setrecursionlimit(1000000) #例如这里设置为一百万

ascii转换

  • ord(‘哈’) #21704
  • chr(21704) #哈
  • ord(‘a’) #97
  • chr(97) #a

哈希表创建及使用

nums = [1,3,5,3,6]
#将nums中的值与其对应的下标存储在哈希表中方便寻找其在nums中是否存在
# 如果存在则输出其下标
 mp = list()
 #初始化哈希表
 for i,num in enumerate(nums):
 	mp[num] = i

将二维数组以矩阵形式输出

使用import numpy as np

import numpy as np
list = [[1,2,3],[1,2,3],[1,2,3]]
print(np.array(list))

输出结果:
[[1 2 3]
[1 2 3]
[1 2 3]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值