python - 如何在包含列表作为值的列表中找到最大值?
问题描述
我有一个关于 python 类的练习,我陷入了问题 4:
在空间 [1,50] 中创建
list1
200 个随机整数并打印该数字是 10 的次数。使用 50 个整数 [1,2,3, ..., 50]创建
list2
,然后使用append()
函数将列表连接在一起并显示大小。- 删除索引号从 99 到 130 的数据,并在删除项目后打印列表大小。
- 在列表中找到最大值和最小值。
我对如何找到 MAX 的第一个想法是对列表进行排序并获取最后一个值,但是因为列表中的一项是列表,所以我收到了这个错误TypeError: '<' not supported between instances of 'list' and 'int'
。
关于我必须做什么的任何想法?在这个问题之前,我的代码如下:
import numpy as np
#Question1
j= 0;
list1 = list(range(200)) #decalre list1
for i in range(200):
list1[i] = np.random.randint(50) #create a list of length 200 with values 0 to 50.
if list1[i] == 10:
j = j+1
print("Number 10 exists ",j,"times in the list.")
#QUESTION2
list2 = list(range(1,51)) #Declare list2
list1.append(list2) #append list2 on list1
print(len(list1))
#QUESTION3
for i in range(99,130): # deletes the items with an index number from 99 to 130
list1.pop(i)
print(len(list1))
解决方案
Python提供了一个内置函数来解决这个问题:
max([2, 5, 4, 9, 3, 7])
9
我会合并列表,所以将list2的项目附加到list1,所以你只有一个轴,那么你可以使用内置函数
如果你不想要要合并列表,您可以先获取列表中列表的最大值。然后你可以取这个最大值中的最大值和你的外部列表的另一部分。
您也可以更改这一行:
list1[i] = np.random.randint(50)
您可以导入 random (它是一个内置模块)并这样做:
list1[i] = random.randint(1, 50)
但可能 numpy 更快。如果您想使用 numpy,您仍然需要将行更改为:
list1[i] = np.random.randint(1, 50)
您需要更改问题 3 中的删除循环,因为如果您删除第 99 项,那么第 100 项就是新的第 99 项,因此您只删除每个第二个元素。您可以通过从 130 倒退到 99 来解决该问题:
for i in range(130, 99):
我希望我能帮助你解决这个问题。
推荐阅读
- tfs - 回滚/还原 TFS 中的特定/单个更改集而不影响以后的更改集
- ios - 广告 SDK 在没有 AppMeasurement 的情况下初始化
- powerbi - 无法在 Power BI 中登录或发布报表
- function - N位数的绝对减法
- django - pytest-django:模拟 settings.DEBUG
- git - 什么会导致未提交的暂存文件?
- python - 熊猫在样式中删除行应用功能
- opencv - 无法在 opencv 中更改图像形状(ValueError:操作数无法与形状一起广播(248,399)(248,398))
- angular8 - 如何使用泳道 ngx 数据表在表格最后一列中添加、编辑、查看和删除选项
- ubuntu - 詹金斯一次又一次地崩溃