Python:什么是字符串数组?

时间:2018-09-03 19:57:08

标签: python arrays string

因此,我正在用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 处理输入。

有什么主意如何解析此输入?

2 个答案:

答案 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:]