该程序根据您希望列表中的两个索引号从列表中构建字典。这是输出
{'a':2,'c':7,'b':'h'}
def buildDict2(theList,inputOne,inputTwo) :
newdict={}
for a in theList:
if inputTwo >= len(a):
print "error"
return "error"
if inputOne >= len(a):
print "error"
return "error"
for oneValue in a:
print len(a)
varkey=a[inputOne]
varvalue=a[inputTwo]
newdict[varkey]=varvalue
return newdict
print buildDict2([["a", "s","d", 2,0,1],["b", "f",3,"h",0,2],["c", "g",5,7]],0,3)
如何将其转换为单个循环?+1 所有答案感谢您的帮助,非常感谢。
基本上我只需要使用一个循环而不是两个
编辑:重要概念:它需要一本字典和两个数字。这两个数字告诉程序要使用的列表索引。list=[[a,b,c],[d,e,f],[h,g,i]] 与数字 0 和 2 一起使用将返回一个包含三个条目的字典。键将是第一个输入。所以键是 ad 和 h,值将是第二个输入的列表索引,所以 c,e i。得到它?
对于此代码
def buildDict2(theList, range1, range2, newdict = {}):
for a in theList:
if range2 >= len(a) or range1 >= len(a):
return "error"
newdict[a[range1]] = a[range2]
return newdict
print buildDict2([["a", "s","d", 2,0,1],["b", "f",3,"h",0,2],["c", "g",5,7]],0,3)
当我想得到 {'a': 2, 'c': 7, 'b': 'h'} 时,我得到了 {'a': 2} 有什么问题?