如果第一个列表中的特定条件语句为真,如何使用字符串元素迭代列表并将特定值附加到另一个列表?

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:,它将按您预期的方式工作。

  1. dir 已经引用了内置函数 dir(),不应用作变量。

  2. 您正在检查列表中是否存在某个字符串,而您应该检查列表元素中是否存在该字符串。

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)