Python中合并sys.argv列表元素的问题求助
问题解决:合并sys.argv中指定位置的元素
你的代码问题出在切片范围错误:sys.argv[2:(len(sys.argv)-1)]仅包含索引2到倒数第二个元素(Python切片遵循左闭右开规则)。拿你的测试输入来说,原列表长度为4,len(sys.argv)-1等于3,所以切片范围是2:3,只取到了'chickens'单个元素,合并后还是它本身;同时原列表的最后一个元素'room'完全没被处理,导致最终列表结构没有变化。
修正方案
要合并从索引2开始的所有剩余元素,切片应改为sys.argv[2:],然后将该切片替换为合并后的字符串。
修正后的代码片段:
import sys print(sys.argv) if len(sys.argv) > 3: print(len(sys.argv)) # 取索引2到末尾的所有元素合并,替换原切片位置 sys.argv[2:] = [' '.join(sys.argv[2:])] print(sys.argv[2]) print(sys.argv)
运行你的测试输入后,输出会符合预期:
['caesar.py', '46', 'chickens', 'room'] 4 chickens room ['caesar.py', '46', 'chickens room']
内容的提问来源于stack exchange,提问作者Ben Murphy
相关产品推荐
相关产品推荐

