gpt4 book ai didi

python - 生成的列表包含此代码段中的 [Apparantly] 下落不明的空格

转载 作者:行者123 更新时间:2023-11-28 22:17:05 24 4
gpt4 key购买 nike

一道关于 python 编程的常规问题,我被要求生成一个从一个字符串切片的字符串列表(我们称之为 target_string),每个切片字符串的长度从 1 增加到 string 的长度。

例如,如果 target_string 是 '123',我必须生成这样的列表:['1', '2', '3', '12', '23', '123'].

为此,我写了一段代码,如下所示:

target_string = raw_input("Target String:")
length = len(target_string)
number_list = []
for i in range(length):
for j in range(length):
if j + i <= length:
number_list.append(target_string[j:j + i])
print(number_list)

执行此操作的结果是:

Target String:12345
['', '', '', '', '', '1', '2', '3', '4', '5', '12', '23', '34', '45', '123', '234', '345', '1234', '2345']

我注意到的第一件事是列表由空格作为元素组成,空格的数量等于 target_string 的长度。为什么会这样?欢迎任何形式的澄清和帮助。

P.S:我有一个临时解决方法来生成我需要的列表:

target_string = raw_input("Target String:")
length = len(target_string)
number_list = []
for i in range(length):
for j in range(length):
if j + i <= length:
number_list.append(target_string[j:j + i])
number_list.append(target_string)
del number_list[0:length]
target_list = [int(i) for i in number_list]
print(target_list)

也可以随意提出对此的任何更改或修改,或者您认为更有效和 pythonic 的任何方法。提前致谢。

编辑:这是在 Pycharm 中实现的,在 Windows 10 上,使用 Python 2.7,但请随时提供 Python 2.7 和 3.X 版本的解决方案。

最佳答案

可以使用itertools.combinations,然后获取索引连续加1的,使用''.join(..)将其转换为字符串并使用 .extend(..) 添加它:

python 2.7:

import itertools
target_string = raw_input("Target String:")
l=[]
for i in range(1,len(target_string)+1):
l.extend([''.join(i) for i in itertools.combinations(target_string,i) if all(int(y)-int(x)==1 for x, y in zip(i, i[1:]))])
print l

输出:

['1', '2', '3', '12', '23', '123']

Python 3.x:

import itertools
target_string = input("Target String:")
l=[]
for i in range(1,len(target_string)+1):
l.extend([''.join(i) for i in itertools.combinations(target_string,i) if all(int(y)-int(x)==1 for x, y in zip(i, i[1:]))])
print(l)

输出:

['1', '2', '3', '12', '23', '123']

关于python - 生成的列表包含此代码段中的 [Apparantly] 下落不明的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51625669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com