python星星排列代码怎么写_【读码】python中的小星星*用法示例

读懂代码很难的,比写代码还难,但也是最节约时间最好的学习方式之一。今天我们通过读代码来了解一下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

demo5

def tag(tag_name, **attributes):

attribute_list = [

f'{name}="{value}"'

for name, value in attributes.items()

]

return f""

print(tag('a', href="http://treyhunner.com"))

print(tag('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

b 2

c 3

**

你可能感兴趣的:(python星星排列代码怎么写)