我正在学习Python,并有一个关于print命令的问题。
为什么在以下情况下,带有print命令的代码在一行中工作:
text = "The vegetables are in the fridge."
print(text.replace("vegetables", "fruits"))但是当我这样写的时候,我就没有结果了?
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
print(fruits.extend(numbers))正确的方法如下:
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
fruits.extend(numbers)
print(fruits)我的意思是,如果逻辑是这样的,首先一个函数工作,然后第二个,那么为什么在第一个,它只是工作?
我希望我能解释清楚。
事先谢谢,
莉莉丝
发布于 2020-02-21 14:11:53
Python字符串是不可变的对象,这意味着对它们执行的方法返回新的字符串。
另一方面,列表是可变的,这意味着您可以更改它们:将项目添加到列表中,更改列表中的特定项等等。这些更改都已完成:相同的列表被更改。
通常,在适当位置执行的方法没有返回值。fruits.extend(numbers)没有返回值,因为它改变了fruits的位置。
如果您之后需要使用fruits,那么将它拆分成两行的解决方案是很好的。如果没有,您可以创建一个新列表并按如下方式打印:
numbers = [12, 34, 23, 88, 1, 65]
fruits = ["apple", "pear", "orange", "grapes", "mango"]
print(fruits + numbers)发布于 2020-02-21 14:03:49
.extend(...)返回None。任何改变就地对象的方法都会返回None。
.replace(...)返回一个带有替换值的新字符串。
但你可以试试这个单衬垫。
print(fruits.extend(numbers) or fruits)
#['apple', 'pear', 'orange', 'grapes', 'mango', 12, 34, 23, 88, 1, 65]

发布于 2020-02-21 14:06:37
>>>fruits.extend(numbers)
None这将改变水果,但新的值不会返回。
https://stackoverflow.com/questions/60340079
复制相似问题