在Python中使用“print”时,以下行为的原因是什么

2024-06-01 02:01:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

 import numpy as np
 import math as mat

 list_of_numbers = {int(mat.sqrt(x)) for x in range(7)}

 print(list_of_numbers)

我希望输出是从0到6的每个数字的平方根

即[0,1,1,1,2,2]

为什么Python只打印

[0, 1, 2]

我已经检查了打印文档https://www.python-course.eu/python3_print.php

似乎没有关于打印不打印重复值的参考。有人能帮忙吗


Tags: of代码inimportnumpyforasnp
3条回答

你需要改变

list_of_numbers = {int(mat.sqrt(x)) for x in range(7)}

list_of_numbers = [int(mat.sqrt(x)) for x in range(7)]

这是因为您使用的是集合而不是列表。尝试:

import numpy as np
import math as mat

list_of_numbers = [int(mat.sqrt(x)) for x in range(7)]

print(list_of_numbers)

您已经在此处创建了set literal

list_of_numbers = {int(mat.sqrt(x)) for x in range(7)}

集合不存储重复项。它们是有用的数据结构,用于检查可以散列的内容的成员资格

它们和列表绝对不是一回事

要创建列表,只需将{}交换为[]

 list_of_numbers = [int(mat.sqrt(x)) for x in range(7)]

相关问题 更多 >