基于this我正在使用python试验imap和gmail。
使用python REPL,我有:
>>> m.select('[Gmail]/Sent Mail')
('OK', ['35'])
>>> result, data = m.uid('search', None, "ALL")
>>> data
['1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35']
首先我收集这是一个列表对象而不是字符串,因为当我运行
时>>> print data.split(' ')
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'list' object has no attribute 'split'
为什么没有逗号?以及为什么以下似乎有效
>>> print data[0].split(' ')
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35']
答案 0 :(得分:6)
这个演示应该回答你的问题:
>>> data = ['1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35']
>>> type(data) # It is a list
<type 'list'>
>>> len(data) # It has one item
1
>>> type(data[0]) # That item is a string
<type 'str'>
>>> data[0]
'1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35'
>>> data[0].split(' ') # Like all strings, it has a `split` method
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15','16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31','32', '33','34', '35']
>>>
因此,data
是一个列表,其中一个项目是一个字符串。此外,编写data[0].split(' ')
会调用该字符串的split
方法,并将其拆分为空格。
答案 1 :(得分:4)
列表中的单个字符串
>>> type(['1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35'])
<type 'list'>
>>> [type('1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35')]
[<type 'str'>]
以下是有效的,因为str.split(' ')
会拆分每个空白字符,data[0]
表示data
中第一个元素是字符串:
>>> print data[0].split(' ') #You've selected the string out of the list
['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35']