我知道,我不能把列表作为Python中字典的关键字。 我需要字符串数组,对于每个字符串,我需要有一些值,我可以通过该字符串访问。 E.g
["string1" : ["string1.1","string1.2","string1.3"], "string2" :["string2.1","string2.2"]]
我需要遍历字符串(string1,string2),例如打印第二个sub_string(stringX.2),所以我得到了
>>"string1.2","string2.2"
这个问题的最佳解决方案是什么?
答案 0 :(得分:0)
使用dict:
dictvalue = {"string1" : ["string1.1","string1.2","string1.3"],
"string2" : ["string2.1","string2.2"]}
您可以使用以下内容迭代键:
for key in dictvalue:
print dictvalue[key][1:2]
或者直接迭代这些值,因为你似乎只对没有键的值感兴趣。
for value in dictvalue.values():
print value[1:2]
(如果列表少于2个项目,使用[1:2]
切片表示法可以保护我们。)
答案 1 :(得分:0)
假设你的字典是:
x = {'string2': ['substr2.1', 'substr2.2'], 'string1': ['substr1.1', 'substr1.2', 'substr1.3']}
你可以使用:
for key in x:
print(x[key][1]
输出将是:
substr2.2
substr1.2
答案 2 :(得分:0)
如果您想要订购的密钥,请使用orderedDict。然后使用try / except迭代dict项目来捕获和indexError并在出现任何错误时打印密钥:
from collections import OrderedDict
od = OrderedDict((k,v) for k, v in (("string1", ["string1.1", "string1.2", "string1.3"]), ("string2", ["string2.1", "string2.2"])))
try:
for k, v in od.items():
print(k, v[1])
except IndexError as e:
print("IndexError for key {}".format(k))