Python3 - 列表&分裂

时间:2015-10-10 13:42:03

标签: list python-3.x

我目前制作了一个小程序,它将访问一个网站(API)并阅读访问过的网站。

这是陷入困境的数据:

b'364100,749,23389954\n651718,40,37236\n-1,1,0\n264361,69,706507\n266425,68,622098\n164967,73,1091472\n-1,1,0\n191592,70,770992\n4766,99,14061919\n1901400,1,25\n27878,90,5642168\n1733031,1,20\n35862,61,303870\n348752,40,40202\n327185,40,37294\n373555,40,37437\n1762482,1,0\n265521,40,37650\n697009,1,64\n1804628,1,0\n1735100,1,0\n322506,9,1000\n1739499,1,0\n1716356,1,0\n-1,-1\n-1,-1\n-1,-1\n'

我已经尝试将其列入清单,但这是不可能的。 那么如何删除所有\ n和b'和'最后,我可以把所有这些数字放到一个列表中吗?

2 个答案:

答案 0 :(得分:1)

如果我们有

data = b'364100,749,23389954\n651718,40,37236\n-1,1,0\n264361,69,706507\n266425,68,622098\n164967,73,1091472\n-1,1,0\n191592,70,770992\n4766,99,14061919\n1901400,1,25\n27878,90,5642168\n1733031,1,20\n35862,61,303870\n348752,40,40202\n327185,40,37294\n373555,40,37437\n1762482,1,0\n265521,40,37650\n697009,1,64\n1804628,1,0\n1735100,1,0\n322506,9,1000\n1739499,1,0\n1716356,1,0\n-1,-1\n-1,-1\n-1,-1\n'

并且您希望在空白处分割(包括b'\n'):

data_as_list = data.split()

如果您想以逗号分隔

data_as_list = data.split(b',')

在这两种情况下,结果都是bytes个对象的列表。如果你想要字符串,请执行类似

的操作
data_as_list = data.decode('ascii').split()

data_as_list = data.decode('ascii').split(',')

(请注意,分隔符','现在是一个字符串,而直接在bytes上工作时,我们使用bytes分隔符b','。)

答案 1 :(得分:0)

如果我理解你正在做什么,你可以使用string.split将字符串分成一个列表。您还可以使用string.strip删除前导和尾随字符。

例如:

list = string.strip("'b").split("\n")

list

['364100,749,23389954', '651718,40,37236', '-1,1,0', '264361,69,706507', '266425,68,622098', '164967,73,1091472', '-1,1,0', '191592,70,770992', '4766,99,14061919', '1901400,1,25', '27878,90,5642168', '1733031,1,20', '35862,61,303870', '348752,40,40202', '327185,40,37294', '373555,40,37437', '1762482,1,0', '265521,40,37650', '697009,1,64', '1804628,1,0', '1735100,1,0', '322506,9,1000', '1739499,1,0', '1716356,1,0', '-1,-1', '-1,-1', '-1,-1', '']

希望这有帮助!