因此,我正在用Python进行此编码挑战,问题是输入为urlpatterns =[
url(r'^bookings/',views.bookings, name='bookings'),
]
。我下载了一个示例输入,string array
文件如下所示:
.txt
老实说,我不知道如何处理该输入以从中获取单个行作为项目对,因此我在挑战方面表现不佳。但是,我仍然对学习感兴趣。
我尝试使用13
Alice;START
Bob;START
Bob;1
Carson;START
Alice;15
Carson;6
David;START
David;24
Evil;START
Evil;24
Evil;START
Evil;18
Fiona;START
处理输入。
有什么主意如何解析此输入?
答案 0 :(得分:1)
没有足够的详细信息,但我认为第一行是示例数,随后的几行包含元组,实际上,元组实际上就是您提到的字符串数组。
我会采用以下方式:
with open ("input.txt") as f:
no_examples = f.readline().strip()
array = []
for i in range(no_examples):
example = f.readline().strip().split(';')
array.append(example)
对example
变量的赋值会去除不可见的行结束符,并用分隔符;
分割结果。
答案 1 :(得分:0)
with open("your_file.txt") as f:
array = [line.rstrip().split(";") for line in f]
说明:
第一行是打开文本文件的安全方法。 (文件将在工作后自动关闭。)
该行末尾的 f
成为 iterable 对象的名称-每次迭代,我们都会从打开的文本文件中获得下一整行
现在,我们使用该对象通过列表理解(第二行)创建列表-参见该行的结尾:
for line in f]
因为line
包含整行,即i。 e。带有尾随换行符(\n
)的符号,我们使用rstrip()
方法将其修剪掉:
[line.rstrip() for line in f]
最后,我们将每个这样的字符串分成一个列表(使用定界符;
)
[line.rstrip().split(";") for line in f]
并将结果分配给变量array
:
array = [line.rstrip().split(";") for line in f]
测试:
from pprint import pprint
pprint(array)
输出:
[['13'], ['Alice', 'START'], ['Bob', 'START'], ['Bob', '1'], ['Carson', 'START'], ['Alice', '15'], ['Carson', '6'], ['David', 'START'], ['David', '24'], ['Evil', 'START'], ['Evil', '24'], ['Evil', 'START'], ['Evil', '18'], ['Fiona', 'START']]
注意:
文本文件的第一行包含数字13-可能是剩余的行数。如果您想忽略它,只需将[1:]
附加到第二行代码:
with open("your_file.txt") as f:
array = [line.rstrip().split(";") for line in f][1:]