我在列表里面有列表,里面有一个十进制数,我想让我的代码遍历列表,找到最小的十进制数。另外,我想跳过列表的第一个元素。
Input :
[[['7', '3', 'SELL', 'chair_1', '30.00'], ['17', '4', 'BID', 'chair_1', '34.00']]]
[[['14', '5', 'SELL', 'toaster_1', '14.50', '30']]]
[[['10', '1', 'SELL', 'radio_1', '10.00', '30'], ['13', '5', 'BID', 'radio_1', '12.50'], ['16', '6', 'BID', 'radio_1', '12.50']]]
[[['12', '4', 'SELL', 'TV_1', '200.00', '35'], ['15', '8', 'BID', 'TV_1', '250.00'], ['18', '1', 'BID', 'TV_1', '150.00'], ['19', '3', 'BID', 'TV_1', '200.00'], ['21', '3', 'BID', 'TV_1', '300.00']]]
[[['11', '3', 'SELL', 'transistor_1', '15.00', '30'], ['20', '7', 'BID', 'transistor_1', '20.00']]]在0.2秒内完成
我需要跳过第一个嵌套列表,并从第二个嵌套列表迭代,并在每个嵌套列表中找到最低的投标号。
对于拍卖元素toaster_1,拍卖元素toaster_1的最低出价编号是34.00.没有最低出价编号。对于拍卖元素radio_1,拍卖元素TV_1的最低竞价编号是16.50,拍卖元素Transistor_1的最低竞价编号是150.00,最低竞价编号是20.00
对我来说,问题是这些元素是字符串类型的,所以当我运行代码来查找最小数字时,输出就像下面这样。
。。。。。
Expected output is
34.00
0
16.50
150.00
20.00发布于 2020-08-16 11:09:47
您可以将最低出价转换为int,就像这样的int(value_as_string)。有关更多信息,请查看here。
发布于 2020-08-16 11:30:35
正如我在你的帖子中看到的,输入似乎是一个单独的列表列表的列表。
假设您正在寻找一个函数来分别对它们进行操作,请尝试以下方法-
a = [[['7', '3', 'SELL', 'chair_1', '30.00'], ['17', '4', 'BID', 'chair_1', '34.00']]]
b = [[['14', '5', 'SELL', 'toaster_1', '14.50', '30']]]
c = [[['10', '1', 'SELL', 'radio_1', '10.00', '30'], ['13', '5', 'BID', 'radio_1', '12.50'], ['16', '6', 'BID', 'radio_1', '12.50']]]
d = [[['12', '4', 'SELL', 'TV_1', '200.00', '35'], ['15', '8', 'BID', 'TV_1', '250.00'], ['18', '1', 'BID', 'TV_1', '150.00'], ['19', '3', 'BID', 'TV_1', '200.00'], ['21', '3', 'BID', 'TV_1', '300.00']]]
e = [[['11', '3', 'SELL', 'transistor_1', '15.00', '30'], ['20', '7', 'BID', 'transistor_1', '20.00']]]
def get_min_auc(auc):
d = [j for i in auc[0][1:] for j in i if len(j.split('.'))>1]
try: return min(d)
except: return 0
print(get_min_auc(a))
print(get_min_auc(b))
print(get_min_auc(c))
print(get_min_auc(d))
print(get_min_auc(e))34.00
0
12.50
150.00
20.00https://stackoverflow.com/questions/63432512
复制相似问题