【问题标题】:How to turn a string, with numbers, into an array?如何将带有数字的字符串转换为数组?
【发布时间】:2021-02-08 02:03:49
【问题描述】:

如果可能的话,我想在 python 中将以下字符串转换为具有 3 列和多行的数组。我正在尝试将以下内容转换为可行的数值数据集-使用数组,目前我无法弄清楚如何将其从字符串->数组转换。我看到它几乎是我想要的格式。有没有办法在每个撇号之间转换所有内容(例如,'-1,38,31857' 作为一行,'-1,40 ,39304') 作为另一行,并将所有这些编译成一个数组?

 '-1,38,31857',
 '-1,40,39304',
 '1582871,64,445338',
 '-1,37,29632',
 '-1,1,82',
 '-1,18,3613',
 '-1,6,544',
 '-1,23,7025',
 '-1,34,20775',
 '1979527,23,6361',
 '-1,10,1330',
 '-1,17,3300',
 '-1,11,1426',
 '-1,8,853',
 '-1,24,7087',
 '-1,1,0',
 '-1,1,0',
 '198113,79,1927770',
 '-1,1,0',
 '1763114,1,42',
 '1803615,4,357',
 '-1,1,0',
 '-1,1,0',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1',
 '-1,-1'] ```

【问题讨论】:

  • 这个字符串的来源是什么?这看起来就像你只是将一些文本文件的内容逐行拆分成一个列表。在任何情况下,您都应该使用内置的 csv 模块来解析它。
  • 另外,当你说数组时,你的意思是一个列表吗?只是一个迭代器吗?还是你的意思是一个 numpy 数组?
  • 字符串的来源来自一个名为 old school runescape 的游戏的 hiscores,它以字符串形式输出 - 为了进行处理,需要转换为适当的数组 :) 给出的链接示例出数据集:services.runescape.com/m=hiscore_oldschool/…

标签: python arrays string numbers


【解决方案1】:

使用列表理解和split():

>>> [[int(n) for n in row.split(",")] for row in strings]
[[-1, 38, 31857], [-1, 40, 39304], [1582871, 64, 445338], [-1, 37, 29632], [-1, 1, 82], [-1, 18, 3613], [-1, 6, 544], [-1, 23, 7025], [-1, 34, 20775], [1979527, 23, 6361], [-1, 10, 1330], [-1, 17, 3300], [-1, 11, 1426], [-1, 8, 853], [-1, 24, 7087], [-1, 1, 0], [-1, 1, 0], [198113, 79, 1927770], [-1, 1, 0], [1763114, 1, 42], [1803615, 4, 357], [-1, 1, 0], [-1, 1, 0], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1]]

另一种选择是使用csv 模块:

>>> import csv
>>> list(csv.reader(strings, quoting=csv.QUOTE_NONNUMERIC))
[[-1.0, 38.0, 31857.0], [-1.0, 40.0, 39304.0], [1582871.0, 64.0, 445338.0], [-1.0, 37.0, 29632.0], [-1.0, 1.0, 82.0], [-1.0, 18.0, 3613.0], [-1.0, 6.0, 544.0], [-1.0, 23.0, 7025.0], [-1.0, 34.0, 20775.0], [1979527.0, 23.0, 6361.0], [-1.0, 10.0, 1330.0], [-1.0, 17.0, 3300.0], [-1.0, 11.0, 1426.0], [-1.0, 8.0, 853.0], [-1.0, 24.0, 7087.0], [-1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [198113.0, 79.0, 1927770.0], [-1.0, 1.0, 0.0], [1763114.0, 1.0, 42.0], [1803615.0, 4.0, 357.0], [-1.0, 1.0, 0.0], [-1.0, 1.0, 0.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0], [-1.0, -1.0]]

【讨论】:

  • 引用参数是可靠的
猜你喜欢
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2018-12-26
  • 2016-09-30
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
相关资源
最近更新 更多