Python 附加到列表后打印的意外结果

Python 附加到列表后打印的意外结果,python,list,append,Python,List,Append,这是我的代码: temps = (345, 9876, 23, 100, 567) new_temps = (temps / 10 for temp in temps) print(new_temps) 结果是一个错误 在理解周围使用括号使其成为生成器表达式;如果您想要一个列表理解,请使用方括号: new_temps = [temps / 10 for temp in temps] temps = [345, 9876, 23, 100, 567] 旁注:您原来的temp也不是列表(因为

这是我的代码:

temps = (345, 9876, 23, 100, 567)

new_temps = (temps / 10 for temp in temps)
print(new_temps)
结果是一个错误


在理解周围使用括号使其成为生成器表达式;如果您想要一个
列表
理解,请使用方括号:

new_temps = [temps / 10 for temp in temps]
temps = [345, 9876, 23, 100, 567]

旁注:您原来的
temp
也不是
列表
(因为您使用了括号,而不是方括号作为分隔符);它是一个
元组
(类似于
列表
,但不可变)。在这种情况下,它工作得很好,因为您没有试图修改它。

在理解周围使用括号使其成为生成器表达式;如果您想要一个
列表
理解,请使用方括号:

new_temps = [temps / 10 for temp in temps]
temps = [345, 9876, 23, 100, 567]

旁注:您原来的
temp
也不是
列表
(因为您使用了括号,而不是方括号作为分隔符);它是一个
元组
(类似于
列表
,但不可变)。在这种情况下,它可以正常工作,因为您不想修改它。

首先,
temps
是一个元组,而不是列表。清单将使用方括号:

new_temps = [temps / 10 for temp in temps]
temps = [345, 9876, 23, 100, 567]
不过,对于您的使用,它是元组还是列表并不重要

其次,
(temps/10表示temps中的temp)
是一个生成器表达式,而不是列表。你想要

new_temps = [temps/10 for temp in temps]

首先,
temps
是一个元组,而不是列表。清单将使用方括号:

new_temps = [temps / 10 for temp in temps]
temps = [345, 9876, 23, 100, 567]
不过,对于您的使用,它是元组还是列表并不重要

其次,
(temps/10表示temps中的temp)
是一个生成器表达式,而不是列表。你想要

new_temps = [temps/10 for temp in temps]

您正在使用生成器表达式

您需要通过使用
[
..
]
而不是
..
来使用相应的列表理解:

给予

或者,您需要迭代生成器:

temps = (345, 9876, 23, 100, 567)
new_temps = (temp / 10 for temp in temps)
for temp in new_temps:
    print(temp)
给予

您还可以将其转换为列表(通过对其进行迭代来实现):

给予

(例如,使用
for
循环进行迭代也会与第一个选项中使用的列表理解一起工作,尽管如果您有很多项,并且您要做的只是在其上迭代一次,那么使用
表单在内存上更有效。)



我还纠正了生成器表达式中的一个错误-应该是
temp/10
,而不是
temps/10

您使用的是生成器表达式

您需要通过使用
[
..
]
而不是
..
来使用相应的列表理解:

给予

或者,您需要迭代生成器:

temps = (345, 9876, 23, 100, 567)
new_temps = (temp / 10 for temp in temps)
for temp in new_temps:
    print(temp)
给予

您还可以将其转换为列表(通过对其进行迭代来实现):

给予

(例如,使用
for
循环进行迭代也会与第一个选项中使用的列表理解一起工作,尽管如果您有很多项,并且您要做的只是在其上迭代一次,那么使用
表单在内存上更有效。)



我还纠正了生成器表达式中的一个错误-应该是
temp/10
,而不是
temps/10

您使用[]在python中声明列表,您的for也调用了所有列表,而不是元素,它是“temp”而不是“trites”。是这样的:

temps = [345, 9876, 23, 100, 567]
new_temps = [temp / 10 for temp in temps]
print(new_temps)
>> [34.5, 987.6, 2.3, 10.0, 56.7]

祝您在Python中的旅行好运

在python中用[]声明列表时,for也会调用所有列表,而不是元素,即“temp”而不是“trites”。是这样的:

temps = [345, 9876, 23, 100, 567]
new_temps = [temp / 10 for temp in temps]
print(new_temps)
>> [34.5, 987.6, 2.3, 10.0, 56.7]

祝您在Python中的旅行好运

如果要将临时值转换为列表,可以使用:

list(temps) 
输出:[3459876,23100567]

但您可以通过列表理解实现您的要求,而无需任何转换。您可以得到您的答案:

temps = (345, 9876, 23, 100, 567)
new_temps = [temp / 10 for temp in temps]
print(new_temps)

Out:[34.5987.6,2.3,10.0,56.7]

如果要将临时值转换为列表,可以使用:

list(temps) 
输出:[3459876,23100567]

但您可以通过列表理解实现您的要求,而无需任何转换。您可以得到您的答案:

temps = (345, 9876, 23, 100, 567)
new_temps = [temp / 10 for temp in temps]
print(new_temps)

输出:[34.5987.6、2.3、10.0、56.7]

您没有在任何地方添加列表。实际上,任何地方都没有列表,只有一个元组,
temps
。你说你是python新手,那么你到底希望
(temps/10表示temps中的temp)
做什么呢?为什么?而且,
也不是一个错误。它只是生成器对象的打印表示,它是由
(temps/10表示temp in temps)
创建的,称为生成器表达式。如果您是Python新手,在掌握Python的基本知识之前,您可能应该避免这些事情。您不会在任何地方添加列表。实际上,任何地方都没有列表,只有一个元组,
temps
。你说你是python新手,那么你到底希望
(temps/10表示temps中的temp)
做什么呢?为什么?而且,
也不是一个错误。它只是生成器对象的打印表示,它是由
(temps/10表示temp in temps)
创建的,称为生成器表达式。如果您是Python新手,在掌握该语言的基础知识之前,可能应该避免这些事情。*生成器expression@juanpa.arrivillaga谢谢。*发电机expression@juanpa.arrivillaga谢谢