我要打印其值中第0个索引元素为1的键。你知道吗
例如,3
:
[[1, 3], [0, 3], [1, 3], [0, 3], [1, 3]]
值为:
[[1, 3], [0, 3], [1, 3], [0, 3], [1, 3]]
值中的每个第0个索引元素是:
1 0 1 0 1
因此,符合要求的要素是:
[1,3],[1,3],[1,3]
我想把钥匙印一次。所以结果应该是3。你知道吗
代码如下:
data_set = {'1': [[0, 0], [0, 0]], '2': [[0, 2]], '3': [[1, 3], [0, 3], [1, 3], [0, 3], [1, 3]], '4': [[1, 4]], '5': [[1,5], [1,5], [1,5]]}
z = ""
for k,v in data_set.items():
for item in v:
if item[0] == 1:
count = 0
if z == "" or z[count] != k:
z += k
count +=1
print z
我得到的结果是:
35554
预期结果应为:
345
我不知道为什么它首先打印key=3
的值,然后移动到key=5
的部分。你知道吗
我想这就是我的“如果陈述”不起作用的原因。因为在那部分,我检查钥匙是否被打印出来了。你知道吗
它有什么问题,如何按顺序打印dic中的值?你知道吗
如果要打印键
k
,即使值v
中只有一个以1
开头的值,也不需要计算任何值。就这么做吧另一方面,如果您不在Python3上,请使用
iteritems
而不是items
(正如您标记问题python2.7一样,您不在Python3上)。iteritems
比items
有效。你知道吗您可以使用以下代码按顺序打印钥匙:
由于字典是无序的
data_set.items()
将以随机顺序返回键值对。这就解释了为什么输出中5在4之前。通过对返回的项进行排序,然后对它们进行迭代,可以很容易地解决这个问题:sorted(data_set.items())
。你知道吗第二个问题是,由于您总是检查字符串是否为空或第一个字符是否与当前键匹配。这就解释了为什么你的结果有多个5。可以通过将
if
子句改为检查最后一个字符来修复:相关问题 更多 >
编程相关推荐