相关疑难解决方法(0)

python以什么顺序显示字典键?

>>> D = {'a': 1, 'b': 2, 'c': 3}
>>> D
{'a': 1, 'c': 3, 'b': 2}
Run Code Online (Sandbox Code Playgroud)

我只是在Python shell中做了这个,我只是想知道为什么键'c'会在键'b'之后?

python

18
推荐指数
3
解决办法
1万
查看次数

使用urlencode python构建查询字符串

我正在尝试构建一个url,以便我可以使用urllib模块向它发送get请求.

让我们假设我的final_url应该是

url = "www.example.com/find.php?data=http%3A%2F%2Fwww.stackoverflow.com&search=Generate+value"
Run Code Online (Sandbox Code Playgroud)

现在实现这一点我尝试了以下方式:

>>> initial_url = "http://www.stackoverflow.com"
>>> search = "Generate+value"
>>> params = {"data":initial_url,"search":search}
>>> query_string = urllib.urlencode(params)
>>> query_string
'search=Generate%2Bvalue&data=http%3A%2F%2Fwww.stackoverflow.com'
Run Code Online (Sandbox Code Playgroud)

现在,如果你将我query_string的格式与final_url你的格式比较,你可以观察两件事

1)params的顺序是反转而不是data=()&search=search=()&data=

2)urlencode也编码+Generate+value

我相信第一个变化是由于字典的随机行为.所以,我虽然OrderedDict用来反转字典.因为,我正在使用python 2.6.5我做的

pip install ordereddict
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时,我无法在我的代码中使用它

>>> od = OrderedDict((('a', 'first'), ('b', 'second')))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'OrderedDict' is not defined
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是 …

python dictionary urllib

9
推荐指数
1
解决办法
3万
查看次数

如何获得结果字典中的预期订单?

result = {}
a = ["a","b","c"]
b = [1, 2, 3]

for i in range(3):
  result[a[i]] = b[i]

print result
Run Code Online (Sandbox Code Playgroud)

我希望得到以下结果: {'a': 1, 'b': 2, 'c': 3}

但真正的是 {'a': 1, 'c': 3, 'b': 2}

是什么原因以及如何解决?

python

0
推荐指数
1
解决办法
86
查看次数

标签 统计

python ×3

dictionary ×1

urllib ×1