python - 如何更改列表值?
问题描述
def double_reverse(words_list):
reverse = []
reverse1= []
reverse = words_list[::-1]
for i in reverse:
reverse1.append(i[::-1])
words_list = reverse1
你好呀,
我有一个练习评估的问题:
对于这个问题,我无法返回或打印任何内容。相反,我需要更新 words_list 列表值,以便获得所需的结果。
但是,由于某种原因,我只能得到原始列表。为什么列表没有更新?
干杯
解决方案
words_list = reverse1
只是重新绑定局部变量words_list
。它不会改变该变量之前引用的对象(作为函数参数传入的对象)。一个简单的解决方法是切片分配:
words_list[:] = reverse1
这构成了对所述对象的突变。
您的函数的一般 pythonic 简化可能是:
def double_reverse(words_list):
words_list[:] = [w[::-1] for w in reversed(words_list)]
推荐阅读
- git - 在 TeamCity 中使用 Git 命令
- r - 如何从 R 中的完整块设计方程进行仿真?
- vue.js - 从 webpack 中的特定资产文件中删除哈希
- r - 如何忽略 _bookdown.yml 以使用其自己的 YAML 标头呈现章节?
- http - 一次性 nonce http 摘要认证
- python - PyVisa - 无法通过 VICP 连接但 TCPIP 有效?
- .net - C#:ILogger 作为日志记录工具
- azure - Azure Function+ARM:将应用设置与当前设置合并
- apache-spark - 从时间戳列添加月份列,Pyspark
- php - WooCommerce 休息 api 没有得到卷曲响应