首页 > 解决方案 > 如何在其中添加逗号以使其成为 python 上的正确列表?

问题描述

我想通过在括号中的值之间添加逗号来使其成为正确的列表。

[119033] [656516, 34751, 2180, 656495, 66509032, 441462, 24801909, 134694146] [3220] [68313] [104735] [110685] [6432223] [565394] [519872] [] [5320377] [10855848] [11789573] [] [13745740] [101293645] [] [5464156, 94060] [] [] [] [] [6654] [2537]

我希望输出看起来像这样

[119033], [656516, 34751, 2180, 656495, 66509032, 441462, 24801909, 134694146], [3220],[68313], [104735], [110685], [6432223], [565394], [519872], [], [5320377], [10855848], [11789573], [], [13745740], [101293645], [], [5464156, 94060], [], [], [], [], [6654], [2537] 

如果可能的话,我还想删除空括号。

标签: python

解决方案


我认为输入中的给定完全是一个字符串。意思是

input ="[119033] [656516, 34751, 2180, 656495, 66509032, 441462, 24801909, 134694146] [3220] [68313] [104735] [110685] [6432223] [565394] [519872] [] [5320377] [10855848] [11789573] [] [13745740] [101293645] [] [5464156, 94060] [] [] [] [] [6654] [2537]"

那么你的问题纯粹是字符串操作。我想通知我不想在这种情况下使用正则表达式,我只是继续使用forand进行编码if-else。使用Regular expressions可能会使您的代码更紧凑。尽管如此,我还是先去掉了不需要的空格和逗号,然后使用以下代码将内容存储在“temp”中 -

temp=[(i.strip("[").strip("]").split()) for i in string.replace(", ",",").split(" ")]

print(temp)

print(temp)语句用于调试和理解目的,您可以随意删除。由于您不想要任何空白列表,因此我在以下代码中处理了该查询 -

RemovedBlankLists=[]

[[RemovedBlankLists.append(j.split(",")) for j in i] for i in temp]

print(RemovedBlankLists)

同样,该print(RemovedBlankLists)语句用于调试和理解目的,您可以根据需要将其删除。上面删除了空白列表并拆分了在,下一步中有用的列表。代码的最后部分如下 -

y=[]
for i in RemovedBlankLists:
    if len(i) < 1:
        [y.append(int(j)) for j in i]
    else:
        temp = [int(j) for j in i]
        y.append(temp)
print(y)

最后一条print(y)语句将产生您想要的输出。快乐编码!让我知道我的假设是否错误以及我是否必须将输入视为其他内容。我也很想为替代方案编写代码。


推荐阅读