python - how we can split a data input where some of them are separated by one space and some with 2 space?
问题描述
I have a data input as below:
[-114 -114 228 -114 228 228 -114 -114 228 228 -114 228 -114 -114 914]
[ 228 -114 -114 914 228 -114 -114 228 228 -114 -114 228 228 -114 -114]
as you can see there is 1 space before negative numbers and 2 spaces before positive.
I read file as this :
def switch(letter):
switcher = {
"[": "",
"]": "",
"\n": "@",
}
return switcher.get(letter, letter)
converted_data = ''
with open("/Users/naghmeh/Documents/python/core1", "r") as file:
data = file.read()
for letter in data:
letter = switch(letter)
converted_data = converted_data+letter
converted_data = converted_data.split('@')
split_converted_data = []
for i in converted_data:
i = i.split(" ")
split_converted_data.append(i)
which i = i.split(" ")
separate by 1 space. so code can not be run correctly. how I can fix it?
解决方案
在split
文档中,您可以找到:
如果 sep 未指定或为 None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾不包含空字符串。
所以,使用split()
时不要指明分隔符。
"-114 -114 228 -114 228 228 -114 -114 228 228 -114 228 -114 -114 914".split()
推荐阅读
- postgresql - 致命:剩余的连接槽保留给非复制超级用户连接HEROKU
- ios - iOS深色模式的自定义提升背景颜色
- hadoop - 如何查找集群中的数据节点数?另外如何找到集群的大小和数据节点的内存?
- flutter - 需要一个“String”类型的值,但得到一个“Null”类型的值
- javascript - 显示连接到语音通道的用户?
- spring-boot - 嵌入式Keycloak springboot应用,将keycloak从12升级到14
- javascript - 使用 JavaScript 从地址簿中的数组修改用户数据
- angular - 如何在角度类型脚本中的 D3 堆叠条形图中添加数据标签
- javascript - 将变量内容输出到 React 组件
- reactjs - ReactJS中的错误身份验证登录