如果第一个列表中的特定条件语句为真,如何使用字符串元素迭代列表并将特定值附加到另一个列表?
How to iterate a list with string elements and append a specific value to another list if a specific conditional statement in the first list is true?
我在 Google Colab 工作。我有一个名为 dir
的列表,其中包含字符串元素。我想创建一个新列表,根据是否在 dir
列表的元素中找到特定字符序列,我将在其中附加一个特定数字。
这是我写的代码:
labels=[]
for value in dir:
if '/River/' in dir:
labels.append(1)
elif '/HerbaceousVegetation/' in dir:
labels.append(2)
elif '/Highway/' in dir:
labels.append(3)
elif '/Residential/' in dir:
labels.append(4)
elif '/Industrial/' in dir:
labels.append(5)
elif '/AnnualCrop/' in dir:
labels.append(6)
elif '/Pasture/' in dir:
labels.append(7)
elif '/PermanentCrop/' in dir:
labels.append(8)
elif '/SeaLake/' in dir:
labels.append(9)
else:
labels.append(10)
结果是列表 labels
,每个元素的值为 10。条件语句似乎只考虑了 else
语句。
我如何转换我的代码以考虑所有语句?
这里的问题是您检查的是列表 dir
中的字符串,而不是列表 dir
的元素中的字符串。将 if 语句更改为 (el)if 'your_string' in value:
,它将按您预期的方式工作。
dir
已经引用了内置函数 dir()
,不应用作变量。
您正在检查列表中是否存在某个字符串,而您应该检查列表元素中是否存在该字符串。
labels = []
l = [] #should be filled with your data replacing dir
for value in l:
if '/River/' in value:
labels.append(1)
elif '/HerbaceousVegetation/' in value:
labels.append(2)
#all your cases
else:
labels.append(10)
我在 Google Colab 工作。我有一个名为 dir
的列表,其中包含字符串元素。我想创建一个新列表,根据是否在 dir
列表的元素中找到特定字符序列,我将在其中附加一个特定数字。
这是我写的代码:
labels=[]
for value in dir:
if '/River/' in dir:
labels.append(1)
elif '/HerbaceousVegetation/' in dir:
labels.append(2)
elif '/Highway/' in dir:
labels.append(3)
elif '/Residential/' in dir:
labels.append(4)
elif '/Industrial/' in dir:
labels.append(5)
elif '/AnnualCrop/' in dir:
labels.append(6)
elif '/Pasture/' in dir:
labels.append(7)
elif '/PermanentCrop/' in dir:
labels.append(8)
elif '/SeaLake/' in dir:
labels.append(9)
else:
labels.append(10)
结果是列表 labels
,每个元素的值为 10。条件语句似乎只考虑了 else
语句。
我如何转换我的代码以考虑所有语句?
这里的问题是您检查的是列表 dir
中的字符串,而不是列表 dir
的元素中的字符串。将 if 语句更改为 (el)if 'your_string' in value:
,它将按您预期的方式工作。
dir
已经引用了内置函数dir()
,不应用作变量。您正在检查列表中是否存在某个字符串,而您应该检查列表元素中是否存在该字符串。
labels = []
l = [] #should be filled with your data replacing dir
for value in l:
if '/River/' in value:
labels.append(1)
elif '/HerbaceousVegetation/' in value:
labels.append(2)
#all your cases
else:
labels.append(10)