枚举(enumerate)是Python内置函数。它允许我们遍历数据并?动计数,例如下面这样:for counter, value in enumerate(some_list): print(counter, value)不只如此,enumerate也接受?些可选参数,这使它更有?。例如:for counter, value in enumerate(some_list,1): # 指定从1开始计数 print(counter, value)还可以?来创建包含索引的元组列表。
1 # 指定索引从 1 开始 2 my_list = [‘apple‘, ‘banana‘, ‘grapes‘, ‘pear‘] 3 for c, value in enumerate(my_list, 1): 4 print(c, value) 5 6 # 用来创建包含索引的元组列表 7 counter_list = list(enumerate(my_list, 1)) # 生成一个元素索引数字和元素的元组列表 8 print(counter_list) # 输出:[(1, ‘apple‘), (2, ‘banana‘), (3, ‘grapes‘), (4, ‘pear‘)]
?省(introspection),在计算机编程领域?,是指在运?时来判断?个对象的类型的能?。它是Python的强项之?。Python中所有?切都是?个对象.下面介绍:dir,type和id,inspect砌块
1 # dir?省的最重要的函数之?。它返回?个列表,列出了?个对象所拥有的属性和?法 2 my_list = [1, 2, 3] 3 print(dir(my_list)) # 输出 my_list 的所有?法的名字。不传入参数会返回当前作?域的所有名字 4 other_list = [‘Michael‘, ‘Jack‘] 5 my_list = my_list.__add__(other_list) # 两个列表元素合并 6 print(my_list) 7 8 # type和id,type函数返回?个对象的类型。 9 print(type(‘‘)) 10 print(type([])) 11 print(type({})) 12 print(type(())) 13 print(type(dict)) 14 print(type(3)) 15 16 # id()函数返回任意不同种类对象的唯?ID 17 name = ‘Michael‘ 18 print("ID:", id(name)) 19 20 # inspect模块也提供了许多有?的函数,来获取活跃对象的信息。 21 import inspect 22 #print(inspect.getmembers(str)) # 查看一个对象的成员 23 s = inspect.getmembers(str) # 查看一个对象的成员,还有很多方法可以去试下 24 for k in enumerate(s,1): 25 print(k)
推导式(又称解析式)是Python的?种独有特性;推导式是可以从?个数据序列构建另?个新的数据序列的结构体。共有三种推导,在Python2和3中都有?持: 列表(list)推导式 字典(dict)推导式 集合(set)推导式
列表推导式(又称列表解析式)提供了?种简明扼要的?法来创建列表。结构是在?个中括号?包含?个表达式,然后是?个for语句,然后是0个或多个for或者if语句。那个表达式可以是任意的,意思是你可以在列表中放?任意类型的对象。返回结果将是?个新的列表,在这个以if和for语句为上下?的表达式运?完成之后产?。语法:variable = [out_exp for out_exp in input_list if out_exp == 2]
1 multiples = [ i for i in range(1,40) if i % 2 is 0] 2 print(multiples) 3 var = [ lambda x:x**2 for x in range(1,11) if x % 3 is 0] 4 print(var[1](3)) 5 6 def haha(x): 7 return {str(x): chr(x)} 8 michaels = [ haha(x) for x in range(1,130)] 9 print(michaels)
字典推导式(dict comprehensions)字典推导和列表推导的使??法是类似的
mcase = {‘a‘: 10, ‘b‘: 34, ‘A‘: 7, ‘Z‘: 3} mcase_frequency = { k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys() }
# 使用字典的get方法获取键对应的值,没有找到用0替代# 在上?的例?中我们把同?个字母但不同??写的值合并起来了。print(mcase_frequency)# 还可以快速对换?个字典的键和值dict1 = { v:k for k, v in mcase.items()}print(dict1)
集合推导式(set comprehensions)它们跟列表推导式也是类似的。 唯?的区别在于它们使??括号{}。注意:集合要去掉重复的元素,只保留1个
squared = { x**2 for x in [1,1,2]} print(squared)
原文地址:https://www.cnblogs.com/Micro0623/p/9951654.html
时间: 2024-07-30 03:01:39