Python介绍(10)

2.7 循环 (四)

for循环可以构建推导式——从一个数据序列构建另数据序列的方法

In [90]:

random_numbers = list(range(10))

random_numbers

Out[90]:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#运用for循环在上个列表的基础上定义一个新列表,较麻烦,下面是简单方法

In [91]:

new_numbers = []

for number in random_numbers:

new_numbers.append(number*10)    #append 翻译:增加

new_numbers

Out[91]:

[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

for循环构建的)列表推导式

 

#简单方法

In [92]:

new_numbers = [number*10 for number in random_numbers]

new_numbers

Out[92]:

[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

(for循环构建的)字典推导式

In [95]:

dict_numbers = {number: 'A' for number in random_numbers}

dict_numbers

Out[95]:

{0: 'A',

1: 'A',

2: 'A',

3: 'A',

4: 'A',

5: 'A',

6: 'A',

7: 'A',

8: 'A',

9: 'A'}

(for循环构建的)元组推导式

In [96]:

tuple_numbers = [number*10 for number in random_numbers]

tuple_numbers

Out[96]:

[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

问:视频中未运行出,引出生成器

 

生成器

#列表

In [97]: list(tuple_numbers)

Out[97]: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

 

#元组

In [98]: tuple(tuple_numbers)

Out[98]: (0, 10, 20, 30, 40, 50, 60, 70, 80, 90)

问:视频中讲到生成器只能生产一次,这里第二次也能生成

2.8 函数 (一)

#有一个字典类型的变量,可以找到a对应的值是100

In [99]:

varibal ={

'a': 100,

'b': 100,

'c': 200

}

In [100]:

varibal['a']

Out[100]:

100

 

#把字典转换为一个列表

In [101]: varibal.items()

Out[101]: dict_items([('a', 100), ('b', 100), ('c', 200)])

#找100对应的所以的值

In [102]: [key for key,value in varibal.items() if value ==100]

# value in varibal 翻译 :变量中的值

#items() if value ==100 翻译:items 中的值如果等于100

Out[102]: ['a', 'b']

避免粘贴复制

函数——抽象概念

#用函数表示寻找字典的值

In [103]:

def get_keys(dict_varibal,value):   # dict_varibal 翻译:字典变量

return[key for key,value in dict_varibal.items() if value ==100]

In [104]: get_keys(varibal,100)

Out[104]: ['a', 'b']

In [105]: get_keys(varibal,200)

Out[105]: ['a', 'b']

问:有问题,下面是正确的,视频没讲,只是改正确了

In [106]:

def get_keys(dict_varibal,value):

return[k for k,v in dict_varibal.items() if v == value]

In [107]: get_keys(varibal,200)

Out[107]: ['c']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Demoatnes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值