【发布时间】:2021-02-28 18:01:47
【问题描述】:
我现在有一个这样的列表。
gen = ["f", 'M', "female", "Male", "male", "F", "m", "m", "male", "Female", "x"]
由于他们可能是不同的输入格式,女性可能显示为“F”、“f”、“女性”或“女性”,男性可能显示为“M”、“m”、“男性”或列表中的“男性”。我们如何将列表变成一个新的性别列表,称为“gen2”,只有 0 和 1,0 代表女性,1 代表男性。如果列表中还有其他元素,就假设它是无效的,然后在新列表中忽略它?
我试过了:
n=0
gen2=[]
for i in gen:
s=print(gen[n][0]==str.lower('F'))
if s is True:
gen2.append(0)
n=n+1
elif s is False:
gen2.append(1)
n=n+1
print(gen2)
预期的输出将是
[0, 1, 0, 1, 1, 0, 1, 1, 1, 0]
【问题讨论】:
-
print总是返回None。不要将它用于逻辑链。 -
您可以制作两个列表。您能想到的所有可能输入中的一个表示女性输入,另一个表示相同的输入,但用于男性输入。如果您使用变量
input作为用户输入,您可以执行基本的if input in list:,这将根据您选择的列表返回真或假,否则返回其他条件。