我试着从字符串列表中的每个字符串的末尾去掉字符。你知道吗
我不明白的是这怎么不起作用:
def test():
listymclist = ['bla bla bla\n', 'stuff\n', '80085\n']
for entry in listymclist:
entry.strip('\n')
return listymclist
最终结果是listymclist不变:['bla bla bla\n', 'stuff\n', '80085\n']
但如果我这样做:
def test():
listymclist = ['bla bla bla\n', 'stuff\n', '80085\n']
listymclist = [x.strip('\n') for x in listymclist]
return listymclist
我以所需的剥离形式返回列表:['bla bla bla', 'stuff', '80085']
在第一个例子中,似乎我的for循环被完全忽略了,就好像列表的更改没有被修改为listymclist一样。为什么这个额外的步骤listmclist = ...
是必要的,因为它是一个列表,而不是像元组那样的不可变的东西?你知道吗
^{} 方法不更改原始字符串,而是返回字符串的副本。您可以将返回的值放入另一个列表中,然后返回该列表
您的第一个循环没有改变listmyclist中的条目。您的操作会剥离
\n
,但不会将值写回列表。你知道吗这是因为函数str.strip公司()返回列表中字符串的副本,该字符串不会附加到列表“listymclist”中。它返回一个副本,因为字符串是不可变的。你知道吗
相关问题 更多 >
编程相关推荐