分享

【读码】python中的小星星*用法示例

 大邓的Python 2021-02-23

读懂代码很难的,比写代码还难,但也是最节约时间最好的学习方式之一。今天我们通过读代码来了解一下python中的 * 或者 ** 。通过读代码,帮助我们学习python中的 * 功用。这里我一共列了8个demo,都不是很那,相信大家应该都能根据运行结果推导出星号的功能。

numbers = [21347]

more_numbers = [*numbers, 1118]
more_numbers

运行结果

[213471118]

我在学习这块知识的时候,由于没有比较专业化的命名方式说明每一种用法的名字,所以我就将代码列在下面,供大家学习。

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 = [[147], 
          [258], 
          [369]]

transpose_list(matrix)

运行结果

[[123], [456], [789]]

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(666))

运行结果

1
2
12

demo5

def 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">

dmeo6

fruits = ['lemon''pear''watermelon''tomato']
first, second, *remaining = fruits
remaining

运行结果

['watermelon', 'tomato']

demo7

date_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'}

demo8

def go(**kwargs):
    #kwargs在函数内是一个字典
    for k, v in kwargs.items():
        print(k,v)

go(a=1, b=2, c=3)

运行结果

a 1
2
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库解决网页乱码问题 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约