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谢谢