python - 如何在其中添加逗号以使其成为 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]
如果可能的话,我还想删除空括号。
解决方案
我认为输入中的给定完全是一个字符串。意思是
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]"
那么你的问题纯粹是字符串操作。我想通知我不想在这种情况下使用正则表达式,我只是继续使用for
and进行编码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)
语句将产生您想要的输出。快乐编码!让我知道我的假设是否错误以及我是否必须将输入视为其他内容。我也很想为替代方案编写代码。
推荐阅读
- react-query - 如何使用 React-Query 等待某些东西?
- java - SpringBootTest 失败 - 为什么在单个应用程序测试中 schema.sql 和 data.sql 执行两次?
- javascript - D3.js如何附加本地图像
- nim-lang - 为什么相同的字符串在 Nim 中不相等?
- arrays - 如何在c中将字符串转换为单个字母char
- android - 在 MI、realme 设备的默认消息应用程序中,Firebase 动态链接不可点击
- reactjs - 如何更改 material-ui 选择中下拉图标(箭头)的位置?
- salesforce - Apex 中的字符串格式
- git - Gitlab CI\CD 调度管道间隔
- r - R 基线图,使用 mfrow 分别可视化所有国家