为了账号安全,请及时绑定邮箱和手机立即绑定

Python:什么是字符串数组?

Python:什么是字符串数组?

qq_笑_17 2021-06-07 08:23:36
所以我正在用 Python 做这个编码挑战,问题是输入是string array. 我下载了一个示例输入,.txt文件是这样的:13Alice;STARTBob;STARTBob;1Carson;STARTAlice;15Carson;6David;STARTDavid;24Evil;STARTEvil;24Evil;STARTEvil;18Fiona;START老实说,我不知道如何处理该输入以从中获取单个行作为项目对,所以我在挑战中失败了。但是,我仍然对学习感兴趣。我尝试使用split(";").任何想法如何解析这个输入?
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-06-09
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

没有足够的细节,但我会假设第一行是示例的数量,下面几行包含元组,实际上是您提到的字符串数组。


我会采取以下方式:


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变量的赋值去除了不可见的行尾字符,并通过分隔符分割结果;。


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号