In the newer Python, which uses dictionary understanding, you can use one liner as follows:
ll = sys.argv[1:] args = {k[2:]:v for k,v in zip(ll[::2], ll[1::2])} # {'v1': 'k1', 'v2': 'k2', 'v3': 'k3'}
This has no flexibility in case your user screws up pairing, but it will be a quick start.
The generator can be used to pop a couple of lines with sys.argv[1:] . This would be a good place for flexibility and error checking.
def foo(ll): ll = iter(ll) while ll: yield ll.next()[2:], ll.next() {k:v for k,v in foo(ll)}
hpaulj
source share