您的位置:首页 > 汽车 > 时评 > 河南工程建筑信息网_广西桂林现在能去吗_今日实时热点新闻事件_seo学习论坛

河南工程建筑信息网_广西桂林现在能去吗_今日实时热点新闻事件_seo学习论坛

2024/10/23 9:07:56 来源:https://blog.csdn.net/2302_79986066/article/details/143106298  浏览:    关键词:河南工程建筑信息网_广西桂林现在能去吗_今日实时热点新闻事件_seo学习论坛
河南工程建筑信息网_广西桂林现在能去吗_今日实时热点新闻事件_seo学习论坛

高级内函数置

"""
enumerate可以在迭代序列同时跟踪元素索引,返回一个由索引及其对应元素组成的迭代器。
"""
#方法1
a = ["python", "java", "c", "c++"]
for x, y in enumerate(a):print(x,y)
"""
0 python
1 java
2 c
3 c++
"""
#方法2
c = ["python", "java", "c", "c++"]
gg = enumerate(c)
print(gg)#<enumerate object at 0x0000023FC48FE380>
oo = list(gg)
print(oo)#[(0, 'python'), (1, 'java'), (2, 'c'), (3, 'c++')]
​
print()
#方法1
b = {"python", "java", "c", "c++"}#集合是无序的,每一次的输出结果都是不一样的。
for data1, data2 in enumerate(b):print(data1,data2)
#方法2
kk = {"python", "java", "c", "c++"}
rr = enumerate(kk)
print(rr)#<enumerate object at 0x00000197148EC680>
ee = list(rr)
print(ee)#[(0, 'c++'), (1, 'java'), (2, 'c'), (3, 'python')]
"""
eval是一个 python 内置的函数 ,可以将字符串作为代码来执行,返回执行后的结果
​
语法
eval(expression,globais=None,locals=None)
其中 expression 参数是必须 要传的,表示需要被值表达式或语句
globais 和 locals 参数都是可选的 eval() 所在环境的全局变量和局部变量字典 
"""
#方法1
print(eval("1 + 2 * 3"))#7
#方法2
def data1(x, y):return  x ** y
data_str = "data1(2, 5)"
print(eval(data_str))#32
"""
exec() 是一个Python内置的函数,可以动态地执行一段字符串类型的代码,并返回 None。
语法
exec(source, globals=None, locals=None)
其中 source 参数是必须要传的,表示需要被执行的 Python 代码块。
globals 和 locals 参数都是可选的,分别表示全局变量和局部变量字典。
如果没有提供,则默认使用调用 exec() 所在环境的全局变量和局部变量字典。
# 与 eval() 不同,exec() 的返回值永远是 None,因此不能直接获取执行结果。但是,在执行期间,它
可以修改和操作全局变量和局部变量。
"""
#方法1
exec("data1 = 18")
print(data1)#18
​
#方法2
exec("x = 1000")
exec("y = 1000")
print(x + y)#18
​
#方法3
ppp = """
def kk(n):print("-" * n)
"""
print(exec(ppp),kk(34))#----------------------------------
​
"""
filter()是 Python 内置的过滤函数,用于过滤序列中不符合条件的元素,返回一个 filter 对象(可迭代
类型),其中包含所有通过筛选的元素。
filter(function, iterable)
function 参数是一个函数,用于判断 iterable 序列中的每个元素是否符合条件。
iterable 参数可以是 List、Tuple、Dictionary、Set、String 或任何其他可迭代类型。
"""
​
#提取一个列表中所有的偶数,形成一个新列表
#方法1
list_data = [1,2,3,4,5,6,7,8,9,10]
print(list_data)
data = filter(lambda x:x % 2 == 0,list_data)
print(data)#<filter object at 0x0000020BA1874AF0>
print(list(data))#[2, 4, 6, 8, 10]
print(list(filter(lambda x:x % 2 == 0,list_data)))#[2, 4, 6, 8, 10]
#方法2
def data1(y):if y % 2 == 0:return y
qq = [1,2,3,4,5,6,7,8,9,10]
ak = list(filter(data1,qq))
print(ak)
data1 = [1,2,3,4,5,6,7,8,9,10]
print(data1)
​
def data2(data2):data4 = sum(data1) / len(data1)return data2 > data4
​
data5 = filter(data2,data1)
print(data5)
data6 = list(data5)
print(data6)
"""
map() 是 Python 内置的映射函数,用于对序列中的每个元素进行操作并返回一个新的序列对象
​
map(function, iterable)
function 参数是一个函数,用于对 iterable 序列中的每个元素进行操作。
iterable 参数可以是 List、Tuple、Dictionary、Set、String 或任何其他可迭代类型。
​
# 将列表中的元素都平方
lst = [1, 2, 3, 4, 5]
result = map(lambda x: x ** 2, lst)
print(list(result)) # 输出 [1, 4, 9, 16, 25]
"""
​
"""
使用 lambda 表达式来定义一个匿名函数,该函数接受一个参数 x,并返回 x 的平方值。
然后,我们调用 map 函数将 lst 序列中的每个元素都应用到该函数中,将结果转换为 list 类型并输出。
"""
​
data1 = [1,2,3,4,5,6,7,8,9,10]
print(data1)
def data2(data3):return  data3 ** 2
​
data4 = map(data2,data1)
print(data4)
data5 = list(data4)
print(data5)
zip() 是 Python 内置的压缩函数,用于将多个可迭代对象合并成一个元组,返回一个迭代器。
zip() 是 Python 内置的压缩函数,用于将多个可迭代对象合并成一个元组,返回一个迭代器
zip(*iterables)
# *iterables 表示可迭代对象的集合,可以是若干个序列、列表或其他可迭代类型。
# 合并两个列表
lst1 = [1, 2, 3]
lst2 = ['a', 'b', 'c']
result = zip(lst1, lst2)
print(list(result)) # 输出 [(1, 'a'), (2, 'b'), (3, 'c')]
# 使用 zip() 函数将两个列表按照相同的索引位置进行合并,并返回一个迭代器。最后,再通过 list()函数将其转换为列表并输出。
# 求两个列表对应位置之和
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
result = map(lambda x: x[0] + x[1], zip(lst1, lst2))
print(list(result)) # 输出 [5, 7, 9]
# 首先使用 zip() 函数将两个列表合并成一个包含元组的迭代器。然后,使用 lambda 表达式计算出每个元组中两个元素之和,并使用 map() 函数将每个结果保存到新的列表中,最终结果是 [5, 7, 9]。
# 需要注意的是,如果迭代器的长度不一致,zip() 函数将以最短的序列为准,超过部分将被忽略。
lst1 = [1, 2, 3]
lst2 = ['a', 'b']
result = zip(lst1, lst2)
print(list(result)) # 输出 [(1, 'a'), (2, 'b')]
# 由于 lst2 的长度只有 2,因此从第三个元素开始将被忽略。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com