猿问

Python:什么是字符串数组?

所以我正在用 Python 做这个编码挑战,问题是输入是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

老实说,我不知道如何处理该输入以从中获取单个行作为项目对,所以我在挑战中失败了。但是,我仍然对学习感兴趣。


我尝试使用split(";").


任何想法如何解析这个输入?


qq_笑_17
浏览 172回答 2
2回答

蝴蝶不菲

with open("your_file.txt") as f:    array = [line.rstrip().split(";") for line in f]说明:第一行是打开文本文件的安全方式。(该文件将在工作后自动关闭)。f在该行的末尾成为可迭代对象的名称——每次迭代我们都从打开的文本文件中获取完整的下一行。现在我们使用该对象通过列表理解(第二行)创建列表 - 请参阅该行的末尾:                                      for line in f]因为line包含整行,即带有尾随换行符 ( \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 pprintpprint(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:]

慕侠2389804

没有足够的细节,但我会假设第一行是示例的数量,下面几行包含元组,实际上是您提到的字符串数组。我会采取以下方式: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变量的赋值去除了不可见的行尾字符,并通过分隔符分割结果;。
随时随地看视频慕课网APP

相关分类

Python
我要回答