python - 我的交换功能在 python 中不起作用
问题描述
请大家,这个功能是为了交换列表中的一组项目,比如前 k 个项目与最后 k 个项目,但我不知道如何让这个函数工作
def swap(L, k):
L[len(L)-k:], L[:k] = L[:k], L[len(L)-k:]
但是当我用 doctest 运行它时,它失败了
swap([1, 2, 3, 4, 5, 6],2)
解决方案
该函数完美运行,但您没有对您传入的列表的其他引用,因此它被丢弃。只需将列表保存为名称,然后再将其传入。
顺便说一句,这len(L)
是不必要的。
def swap(L, k):
"""
>>> lst = [1, 2, 3, 4, 5, 6]
>>> swap(lst, 2)
>>> lst
[5, 6, 3, 4, 1, 2]
"""
L[-k:], L[:k] = L[:k], L[-k:]
推荐阅读
- python - 正则表达式子忽略字符串字符的结尾
- r - 使用 R 中 stats 包中的 group_by 和平滑函数对分组数据进行平滑处理
- vb.net - 我做错了什么这里'ExecuteNonQuery 需要一个开放且可用的连接。连接的当前状态是关闭的。'? 我使用 Access 2016
- pydub - pydub AudioSegment.from_file Filenofounderror
- android - 如何在现有 Sqlite DB 中添加新表
- reactjs - 为什么这个 React 路由器 NavLink 要么重定向要么成功提交,但不能同时提交?
- sql - 将 Excel 表格数据与 postgres DB 同步
- influxdb - 如何在 influxDB 中删除重复测量
- python - 计算 groupby 中的 nanmean 并根据子组将此均值应用于 DF 列
- django - Django 模板只出现第一个循环