将带有冒号分隔项的列表拆分为元组列表

Jui*_*icy -2 python split tuples list

如果我有以下列表:

['Host:www.perdu.com','Connection:keep-alive','Cache-Control:max-age = 0','Accept:text/html,application/xhtml + xml,application/xml; q = 0.9,image/webp,/ ; q = 0.8','User-Agent:Mozilla/5.0(Macintosh; Intel Mac OS X 10_9_4)AppleWebKit/537.36(KHTML,如Gecko)Chrome/38.0.2125.111 Safari/537.36',' DNT:1','接受编码:gzip,deflate,sdch','接受语言:en-US,en; q = 0.8,es; q = 0.6,fr; q = 0.4','']

我怎样才能得到一个元组列表,tuple_list如:

tuples_list = [
    ('Host', 'www.perdu.com'),
    ('Connection', 'keep-alive'),
     ....
]
Run Code Online (Sandbox Code Playgroud)

Raf*_*ros 5

你听说过列表理解吗?

headers = ['Host: www.perdu.com', 'Connection: keep-alive', 'Cache-Control: max-age=0', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8', 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36', 'DNT: 1', 'Accept-Encoding: gzip,deflate,sdch', 'Accept-Language: en-US,en;q=0.8,es;q=0.6,fr;q=0.4', '']
headers = [i.split(': ') for i in headers]
Run Code Online (Sandbox Code Playgroud)

会回报你:

[['Host', 'www.perdu.com'], ['Connection', 'keep-alive'], ['Cache-Control', 'max-age=0'], ['Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8'], ['User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36'], ['DNT', '1'], ['Accept-Encoding', 'gzip,deflate,sdch'], ['Accept-Language', 'en-US,en;q=0.8,es;q=0.6,fr;q=0.4'], ['']]
Run Code Online (Sandbox Code Playgroud)

如果你这样做,你可以获得一个元组列表:

headers = ['Host: www.perdu.com', 'Connection: keep-alive', 'Cache-Control: max-age=0', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8', 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36', 'DNT: 1', 'Accept-Encoding: gzip,deflate,sdch', 'Accept-Language: en-US,en;q=0.8,es;q=0.6,fr;q=0.4', '']
headers = [tuple(i.split(': ')) for i in headers]
Run Code Online (Sandbox Code Playgroud)

这将返回您的期望:

[('Host', 'www.perdu.com'), ('Connection', 'keep-alive'), ('Cache-Control', 'max-age=0'), ('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8'), ('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36'), ('DNT', '1'), ('Accept-Encoding', 'gzip,deflate,sdch'), ('Accept-Language', 'en-US,en;q=0.8,es;q=0.6,fr;q=0.4'), ('',)]
Run Code Online (Sandbox Code Playgroud)