[转载]Python dict()函数的使用和for循环写成一个数组

Python dict()函数的使用

原文链接http://www.cnblogs.com/guyuyuan/p/6952442.html

Python函数 dict()

 dict()

作用:dict() 函数用于创建一个字典。返回一个字典。

语法:

class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)

参数说明:

  • **kwargs -- 关键字
  • mapping -- 元素的容器。
  • iterable -- 可迭代对象

实例:

复制代码
1 >>>dict()                        # 创建空字典
2 {}
3 >>> dict(a='a', b='b', t='t')     # 传入关键字
4 {'a': 'a', 'b': 'b', 't': 't'}
5 >>> dict(zip(['one', 'two', 'three'], [1, 2, 3]))   # 映射函数方式来构造字典
6 {'three': 3, 'two': 2, 'one': 1} 
7 >>> dict([('one', 1), ('two', 2), ('three', 3)])    # 可迭代对象方式来构造字典
8 {'three': 3, 'two': 2, 'one': 1}
9 >>>
复制代码

 

Python for循环写成一个数组

百度知道https://zhidao.baidu.com/question/1175324029903391259.html

代码示例
A =[ i*2 for i in range(5) if i >1 ];
B = [ 2,3,4 ];
A == [ i*2 for i in B]

Python 在for循环中嵌套使用if和else语句的技巧

原文链接https://www.jb51.net/article/86987.htm

for…[if]…构建List (List comprehension)

1.简单的for…[if]…语句
  • Python中,for…[if]…语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省略的。下面举几个简单的例子进行说明。
a=[12, 3, 4, 6, 7, 13, 21]
newList = [x for x in a]
newList

[12, 3, 4, 6, 7, 13, 21]

>>> newList2 = [x for x in a if x%2==0]
>>> newList2

[12, 4, 6]

  • 省略if后,newList构建了一个与a具有相同元素的List。但是,newList和a是不同的List。执行b=a,b和newList是不同的。newList2是从a中选取满足x%2==0的元素组成的List。如果不使用for…[if]…语句,构建newList2需要下面的操作。
>>> newList2=[]
>>> for x in a:
...  if x %2 == 0:
...    newList2.append(x)
>>> newList2

[12, 4, 6]
显然,使用for…[if]…语句更简洁一些。

2.嵌套的for…[if]…语句
  • 嵌套的for…[if]…语句可以从多个List中选择满足if条件的元素组成新的List。下面也举几个例子。
>>>a=[12, 3, 4, 6, 7, 13, 21]
>>>b=['a', 'b', 'x']
>>>newList=[(x, y) for x in a for y in b]
>>>newList

[(12, ‘a’), (12, ‘b’), (12, ‘x’), (3, ‘a’), (3, ‘b’), (3, ‘x’), (4, ‘a’), (4, ‘b’), (4, ‘x’), (6, ‘a’), (6, ‘b’), (6, ‘x’), (7, ‘a’), (7, ‘b’), (7, ‘x’), (13, ‘a’), (13, ‘b’), (13, ‘x’), (21, ‘a’), (21, ‘b’), (21, ‘x’)]

>>>newList2=[(x, y) for x in a for y in b if x%2==0 and y<'x']
>>>newList2

[(12, ‘a’), (12, ‘b’), (4, ‘a’), (4, ‘b’), (6, ‘a’), (6, ‘b’)]
嵌套的for…[if]…语句与多重for语句相当,最前面的for语句是最外层的循环。

3.善用python的else子句

在日常coding中,分支语句的使用非常普遍,经常会根据是否满足一定的条件对代码执行的逻辑进行一些控制,所以大家对if[elif[else]]一定不会陌生。分支语句中的else子句在其它的条件不满足的时候会被执行到,适当的使用分支语句能够让我们的代码逻辑更加的丰富。
在分支语句中使用else子句在一些常见的编程语言中的用法基本相同,类似于提供了一条默认的执行路径,配合if等条件判断语句使用,相比其它的编程语言(c#, java, js等)在python中,else有一些特殊的用法,配合for, while等循环语句使用,甚至还能配合异常处理try except语句进行使用,能够让我们的代码更加的简洁。

3.1 配合for/while循环语句使用
  • 在for循环语句的后面紧接着else子句,在循环正常结束的时候(非return或者break等提前退出的情况下),else子句的逻辑就会被执行到。先来看一个例子:
def print_prime(n):
  for i in xrange(2, n):
    # found = True
    for j in xrange(2, i):
      if i % j == 0:
         # found = False 
        break
    else:
      print "{} it's a prime number".format(i)
    # if found:
         # print "{} it's a prime number".format(i)



print_prime(7)


结果:

2 it's a prime number
3 it's a prime number
5 it's a prime number

  • 一个简单打印素数的例子,判断某个数字是否是素数的时候需要遍历比它自己小的整数,任何一个满足整除的情况则判断结束,否则打印这是一个素数的info,有了else的加持,整个例子的逻辑相当的“self-expressive”,如同伪代码一般的好理解而且相比在判断整除的时候设置标志值然后在函数的结尾处判断标志值决定是否打印数字时素数的消息,代码更简洁没有那么多要描述如何做的“过程式”准备工作。
    ps: 大家可以把例子中的被注释代码运行对比下效果。
3.2 配合 try except错误控制使用
  • 在异常处理语句中,else有相似的用法,当try代码块没有抛出任何的异常时,else语句块会被执行到。
def my_to_int(str_param):
  try:
    print int(str_param)
  except ValueError:
    print 'cannot convert {} to a integer'.format(str_param)
  else:
    print 'convert {} to integer successfully'.format(str_param)



my_to_int("123")
my_to_int("me123")



结果:

123
convert 123 to integer successfully
cannot convert me123 to a integer

  • 如打印日志所示,在转换成功未发生错的的时候,else语句里的逻辑会被执行,当然这个例子可能并没有什么太多的实际的用处,但大致能说明else在错误处理中的用处:简化逻辑,避免使用一些标志值就能够准确把握是否发生错误的情况来做一些实际的操作(比如在保存数据的时候如果发生错误,在else语句块中进行rollback的操作,然后紧接着还能加上finally语句完成一些清理操作。
善用else语句块能够让我们编写出更加简明,更加接近自然语言的语义的代码,当然也会更加的pythonic,细微之处大家可以慢慢体会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值