我的程序需要帮助。我是python的新手,所以我遇到了这个问题。
我有2d列表库= [[25.0,1,100.5,4,320.5],[125.0,2,40.0,3,85.0],[175.0,0,125.0,3,75.0],[75.0,0] ,125.0],[181.0,2,125.0]]
我想知道是否有办法可以使用return语句获取每个子列表的计数。 e.g:
银行0,银行1,银行2,银行3,银行4
def bank_id(banks): '''list - > int, returns the banks id number ''' for item in range(len(banks)): bankid = item return (bankid)
输出:
>>> bank_id(banks) 0
但是当我使用print(bankid)时,我得到了我想要的结果:
>>> bank_id(banks) 0 1 2 3 4
但是我不能使用打印,因为我需要为下一个打电话给这个功能,如果我使用打印它将会出现'没有'而不是实际值。
谢谢
答案 0 :(得分:1)
你应该迭代外部列表并在元素上调用len
[len(x) for x in banks]
但我担心我不明白你的任务
答案 1 :(得分:0)
您只打印一次的原因是当您return
突然离开时。
听起来你可能需要重新组织你的代码,如果你需要调用这个函数,但不需要这部分功能:也许这部分功能是它自己的功能。拥有许多单独的功能(通常每行只有15行代码)可以完全正常,而且通常要好得多。打破这一点可能会提高代码可用性的可读性。
def print_bank_ids(banks):
for item in range(len(banks)):
bankid = item
print (bankid)
答案 2 :(得分:0)
如果我正确理解了您想要的内容,您可以迭代列表并将结果插入新列表,然后打印该列表:
def bank_id(banks):
bank_ids_list = []
for bank_id in range(len(banks)):
bank_ids_list.append('Bank '+str(bank_id))
return bank_ids_list
banks = [[25.0, 1, 100.5, 4, 320.5], [125.0, 2, 40.0, 3, 85.0], [175.0, 0, 125.0, 3, 75.0], [75.0, 0, 125.0], [181.0, 2, 125.0]]
print bank_id(banks)
输出:
['Bank 0', 'Bank 1', 'Bank 2', 'Bank 3', 'Bank 4']
答案 3 :(得分:0)
假设:
banks=[[25.0, 1, 100.5, 4, 320.5], [125.0, 2, 40.0, 3, 85.0], [175.0, 0, 125.0, 3, 75.0], [75.0, 0, 125.0], [181.0, 2, 125.0]]
如果我理解,你想枚举列表列表并返回长度:
>>> [('Bank {}'.format(i), len(e)) for i, e in enumerate(banks)]
[('Bank 0', 5), ('Bank 1', 5), ('Bank 2', 5), ('Bank 3', 3), ('Bank 4', 3)]
这可能更适合作为元组的词典:
>>> {i:('Bank {}'.format(i), len(e), e) for i, e in enumerate(banks)}
{0: ('Bank 0', 5, [25.0, 1, 100.5, 4, 320.5]), 1: ('Bank 1', 5, [125.0, 2, 40.0, 3, 85.0]), 2: ('Bank 2', 5, [175.0, 0, 125.0, 3, 75.0]), 3: ('Bank 3', 3, [75.0, 0, 125.0]), 4: ('Bank 4', 3, [181.0, 2, 125.0])}