0

将这个元组列表转换为更简单的元组列表的 Pythonic 方法是什么?

import urllib.parse
QS='field=var1&save=stringA&field=var2&save=&field=var3&save=stringC'
urllib.parse.parse_qsl(QS, keep_blank_values=True)
>>> [('field', 'var1'), ('save', 'stringA'), ('field', 'var2'), ('save', ''), ('field', 'var3'), ('save', 'stringC')]

Python魔术在这里发生

>>> [('var1', 'stringA'), ('var2', ''), ('var3', 'stringC')]
4

1 回答 1

1
>>> data = [('field', 'var1'), ('save', 'stringA'), ('field', 'var2'), ('save', ''), ('field', 'var3'), ('save', 'stringC')]
>>> [(field[1], save[1]) for field, save in zip(*[iter(data)]*2)]
[('var1', 'stringA'), ('var2', ''), ('var3', 'stringC')]

zip(*[iter(s)]*n)在 Python 中如何工作?

另一种方式:

>>> items = (x[1] for x in data)
>>> list(zip(*[items]*2))
[('var1', 'stringA'), ('var2', ''), ('var3', 'stringC')]
于 2013-05-28T04:22:46.490 回答