例如,如果
a = {('a','b','c'):2, ('b','c','d'):3}
我只想返回'a','b'
。
我试过了:
for key in a:
return key[0]
但它只返回'a'
。
是否有一种不使用 lambda 或计数器或类似的东西(这是 python 的基础课程)找到第一个元素的正确方法。所以,没有其他输入程序。
例如,如果
a = {('a','b','c'):2, ('b','c','d'):3}
我只想返回'a','b'
。
我试过了:
for key in a:
return key[0]
但它只返回'a'
。
是否有一种不使用 lambda 或计数器或类似的东西(这是 python 的基础课程)找到第一个元素的正确方法。所以,没有其他输入程序。
该函数(以及因此您的for
循环)一旦命中就结束return
。您应该将值存储在列表中,然后返回。就像是:
def getFirstElems(dic):
firstElems = []
for key in dic:
firstElems.append(key[0])
return firstElems
然后,如果您像这样运行该功能:
a = {('a','b','c'):2, ('b','c','d'):3}
elem1, elem2 = getFirstElems(a)
print "elem1:", elem1
print "elem2:", elem2
你得到这个输出:
elem1: a
elem2: b
你想要这样的东西吗
In [4]: a = {('a','b','c'):2, ('b','c','d'):3}
In [5]: [key[0] for key in a.keys()]
Out[5]: ['a', 'b']
您的代码的问题是return
声明...您应该在返回之前保留所有结果...
如果您每次都想要单独的元素可以使用generators
In [19]: def mygenerator():
....: a = {('a','b','c'):2, ('b','c','d'):3}
....: for k in a.keys():
....: yield k[0]
....:
In [20]: mg = mygenerator()
In [21]: print(mg)
<generator object mygenerator at 0x035FA148>
In [22]: for i in mg:
....: print i
....:
a
b
据我所知,您想遍历字典的键。尝试
for k in a.keys():