读懂代码很难的,比写代码还难,但也是最节约时间最好的学习方式之一。今天我们通过读代码来了解一下python中的 * 或者 ** 。通过读代码,帮助我们学习python中的 * 功用。这里我一共列了8个demo,都不是很那,相信大家应该都能根据运行结果推导出星号的功能。 numbers = [2, 1, 3, 4, 7]
more_numbers = [*numbers, 11, 18] more_numbers
运行结果 [2, 1, 3, 4, 7, 11, 18]
我在学习这块知识的时候,由于没有比较专业化的命名方式说明每一种用法的名字,所以我就将代码列在下面,供大家学习。 demo1当我们调用一个函数时, * 操作能将 可迭代对象传入 一个调用的函数中去,如下 fruits = ['lemon', 'pear', 'watermelon', 'tomato'] print(fruits[0], fruits[1], fruits[2], fruits[3]) print(*fruits)
运行结果 lemon pear watermelon tomato lemon pear watermelon tomato
demo2我们再来看一个例子-实现矩阵转置 def transpose_list(list_of_lists): return [list(row) for row in zip(*list_of_lists)]
matrix = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
transpose_list(matrix)
运行结果 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
demo3** 操作与 * 类似,但是传入的是关键词参数。
date_info = {'year': "2020", 'month': "01", 'day': "01"} filename = "{year}-{month}-{day}.txt".format(**date_info) filename
运行结果 '2020-01-01.txt'
demo4当我们定义函数时 , * 操作可以将函数设置成任意个数的参数。例如 from random import randint
def roll(*dice): #randint(1, die) 在1到die中随机生成一个整数 #最后再加总 return sum(randint(1, die) for die in dice)
print(roll(20)) print(roll(6)) print(roll(6, 6, 6))
运行结果 1 2 12
demo5def tag(tag_name, **attributes): attribute_list = [ f'{name}="{value}"' for name, value in attributes.items() ] return f"<{tag_name} {' '.join(attribute_list)}>"
print(tag('a', href="http://")) print(tag('img', width="40", src="face.jpg"))
运行结果 <a href="http://"> <img width="40" src="face.jpg">
dmeo6fruits = ['lemon', 'pear', 'watermelon', 'tomato'] first, second, *remaining = fruits remaining
运行结果 ['watermelon', 'tomato']
demo7date_info = {'year': "2020", 'month': "01", 'day': "01"} track_info = {'artist': "Beethoven", 'title': 'Symphony No 5'} all_info = {**date_info, **track_info} all_info
运行结果 {'year': '2020', 'month': '01', 'day': '01', 'artist': 'Beethoven', 'title': 'Symphony No 5'}
demo8def go(**kwargs): #kwargs在函数内是一个字典 for k, v in kwargs.items(): print(k,v)
go(a=1, b=2, c=3)
运行结果 a 1 b 2 c 3
精选文章五分钟带你了解随机森林 聊天机器人:十行代码让你秒变撩妹达人 100G 文本分析语料资源(免费下载) 15个最好的数据科学领域Python库 使用Pandas更好的做数据科学 抓取8w技能交换公告信息
【视频讲解】Scrapy递归抓取简书用户信息 美团商家信息采集神器 大邓强力推荐-jupyter notebook使用小技巧 10分钟理解深度学习中的~卷积~ 深度学习之 图解LSTM PyTorch实战: 使用卷积神经网络对照片进行分类 Pytorch实战:使用RNN网络对姓名进行分类 数据清洗 常用正则表达式大全 PySimpleGUI: 开发自己第一个软件 深度特征合成:自动生成机器学习中的特征 Python 3.7中dataclass的终极指南(一) Python 3.7中dataclass的终极指南(二) [计算消费者的偏好]推荐系统与协同过滤、奇异值分解 机器学习: 识别图片中的数字 应用PCA降维加速模型训练 如何从文本中提取特征信息? 使用sklearn做自然语言处理-1 使用sklearn做自然语言处理-2 机器学习|八大步骤解决90%的NLP问题 Python圈中的符号计算库-Sympy Python中处理日期时间库的使用方法 用chardect库解决网页乱码问题
|