【发布时间】:2021-05-05 18:58:54
【问题描述】:
我有一个二维数组,第一列是一串名称,后面的列是它们的分数(整数)。我正在尝试遍历数组并删除任何大于 100 且小于 0 的分数(单个元素),或者从该数组中删除整行。我是他们试图将删除的分数写入 .txt 文件。
下面的第一个代码迭代一个数组,当我运行它以删除实际行时,它只删除了超过 100 的行,我必须重新运行它以删除元素超过 100 的更多行并且它不会删除元素小于 0 的任何行(因此是负数) int() 方法似乎没有在迭代比较时将负元素从 Str 转换为 Int? .
以下是我的分数数组;
newArray = [['joe bloggs', '45', '46', '52', '83'],
['bobby uncle', '52', '45', '85', '63'],
['luke van', '69', '48', '45', '22'],
['lauren loo', '75', '24', '-65', '32'],
['heidi ho', '65', '7', '58', '14'],
['robyn cook', '23', '24', '51', '63'],
['cath roberts', '56', '85', '14', '74'],
['june jules', '58', '45', '26', '65'],
['dan nissie', '41', '56', '85', '45'],
['chris cooks', '24', '-15', '25', '75'],
['Kate Vander', '105', '23', '67', '1'],
['Luther rose', '55', '25', '207', '45']]
error = ""
for row in newArray:
for index,col in enumerate(row):
if col.isdigit() == True:
if int(col)<0 or int(col)>100:
error = error + col
newArray.remove(row)
e.write(error)#I have a txt file set up for this.
我也在尝试使用此代码仅删除单个元素。我读到删除一个元素会导致索引出现问题,可能不会删除元素,因此最好制作一个数组的副本,对其进行迭代,然后将其从原始数组中删除,但这会给我一个错误。
我试过了;
for row in copyOfArray:
for col in row:
if col.isdigit()== True:
if int(col) < 0 or int(col) > 100:
e.write(col)
newArray.remove(col)
基本上结果应该是: #这个当我删除行时
newArray = [['joe bloggs', '45', '46', '52', '83'],
['bobby uncle', '52', '45', '85', '63'],
['luke van', '69', '48', '45', '22'],
['heidi ho', '65', '7', '58', '14'],
['robyn cook', '23', '24', '51', '63'],
['cath roberts', '56', '85', '14', '74'],
['june jules', '58', '45', '26', '65'],
['dan nissie', '41', '56', '85', '45']]
或
#this when I remove just the single element:
newArray = [['joe bloggs', '45', '46', '52', '83'],
['bobby uncle', '52', '45', '85', '63'],
['luke van', '69', '48', '45', '22'],
['lauren loo', '75', '24', '32'],
['heidi ho', '65', '7', '58', '14'],
['robyn cook', '23', '24', '51', '63'],
['cath roberts', '56', '85', '14', '74'],
['june jules', '58', '45', '26', '65'],
['dan nissie', '41', '56', '85', '45'],
['chris cooks', '24', '25', '75'],
['Kate Vander', '23', '67', '1'],
['Luther rose', '55', '25', '45']]
对于这个问题的规模,我深表歉意。
【问题讨论】:
标签: python