gpt4 book ai didi

python - 列表创建不正确

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:05 24 4
gpt4 key购买 nike

我正在尝试根据下面的输入创建一个列表,但我没有看到预期的输出。谁能告诉我哪里出错了?

输入:

CR  FA  CL  Title
409452 WLAN 656885 Age out RSSI values from buffer in Beacon miss scenario
415560 WLAN 656886 To Record SMD Event Logging

我想要一个像

这样的输出
[['CR', 'FA', 'CL', 'TITLE'], ['409452', 'WLAN', '656885', 'Age out RSSI values from buffer in Beacon miss scenario'], ['415560', 'WLAN', '656886','To Record SMD Event Logging']]

但我看到它被创建成

[['CR', 'FA', 'CL', 'TITLE'], ['', '409452', 'WLAN', '656885\tAge out RSSI values from buffer in Beacon miss scenario'], ['', '415560', 'WLAN', '656886\tTo Record SMD Event Logging']]

Python代码

 for i in info.splitlines():
index = re.split(r'\W+',i,3)
CRlist.append(index)

最佳答案

如果除第一行以外的每一行的开头都有额外的空格,您得到的输出正是您所期望的。

出现这种情况的一个常见原因是,您曾尝试解析具有错误行尾的文件,而不使用通用换行符模式,结果把事情弄得无可救药地混淆了。

例如,这两行在您的文本编辑器中可能看起来相同:

409452  WLAN    656885  Age out RSSI values from buffer in Beacon miss scenario
\r409452 WLAN 656885 Age out RSSI values from buffer in Beacon miss scenario

但是您的 re.split 会对它们做非常不同的事情:

['409452', 'WLAN', '656885', 'Age out RSSI values from buffer in Beacon miss scenario']
['', '409452', 'WLAN', '656885\tAge out RSSI values from buffer in Beacon miss scenario']

解决方案是去掉多余的空格。您可以尝试编写更复杂的正则表达式,或者只执行 re.split(r'\W+', s.lstrip(), 3)

因为你提到想要去除尾随空格,所以使用 strip 而不是 lstrip:re.split(r'\W+', s.strip (), 3)

但我不确定为什么您一开始就使用正则表达式,而您可以只执行 s.strip().split(None, 3)

关于python - 列表创建不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13281511/

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