Python学习笔记 5

1. 判断一个对象是否是可迭代

>>>from collections import Iterable
>>>isinstance(1,Iterable)

这里写图片描述

2. 列表生成式/推导式

列表推导式是在给定列表的基础上做一些操作然后得到一个新列表的方式,类似于 for 循环,但是比 for 循环简洁很多。

一般的列表推导式格式:

[表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 [if 条件]|[for 循环]]

示例:

print [x*y for x in [1,2,3] for y in  [1,2,3]]
结果:[1, 2, 3, 2, 4, 6, 3, 6, 9]

print dict([(x,x*10) for x in range(1,10)])
结果:{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90}

演练一下:求给定范围内和等于某个值的所有质数对及其个数(利用列表推导式)

def is_prime(num):
    if num == 1:
        return False
    for i in range(2,num):
        if num%i == 0:
            return False
    return True
def primeComb(num,result):
    resultlst = [(x,y) for x in range(2,num+1)if is_prime(x)  for y in range(x,num+1) if is_prime(y) and x+y == result]
    print len(resultlst)
    print resultlst

3. 关于 range 与 xrange

range(…)#所传递的参数一定要是整数

range(stop) -> 等同于 range(0,stop)
range(start, stop[, step]) -> 列出某个范围内的整数,如果有步长,则列出步长间隔的所有整数

返回一列包含一个整数算术数列
range(i, j) 返回 [i, i+1, i+2, ..., j-1]; 起始位默认是0.
当步长给定,则指明了递增规则或者递减规则
例如:range(4) 返回 [0, 1, 2, 3]. 结束位4被忽略(左闭右开)!
如果需要输出递减的数列,则需要指定步长为负数,例如
range(10,1,-1)
In [124]: range(10,1,-1)
Out[124]: [10, 9, 8, 7, 6, 5, 4, 3, 2]

class xrange(object)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值