Python 如何使用数据结构找到具有给定眼睛颜色的人?

Python 如何使用数据结构找到具有给定眼睛颜色的人?,python,Python,这是我的家庭作业: 编写一个程序来查找具有给定眼睛颜色的人。这是 要使用的数据结构。程序的用户将输入眼睛 颜色请将以下内容放入适当的数据结构中 姓名年龄眼睛颜色 乔20蓝 简·21·格林 吉尔19黑 比尔24布朗 这就是我所做的 name = ["joe", "jane", "jill", "bill"]; age = [20, 21, 19, 24]; eyeColor = ["blue", &

这是我的家庭作业:

编写一个程序来查找具有给定眼睛颜色的人。这是 要使用的数据结构。程序的用户将输入眼睛 颜色请将以下内容放入适当的数据结构中

姓名年龄眼睛颜色

乔20蓝

简·21·格林

吉尔19黑

比尔24布朗

这就是我所做的

name = ["joe", "jane", "jill", "bill"];
age = [20, 21, 19, 24];
eyeColor = ["blue", "green", "black", "brown"];

print (name = age = eyeColor)
但它不起作用。我是Python新手,做了尽可能多的研究,所以我决定在这里继续提问。我还没有完成研究,我会努力找出答案,但在此期间,我会继续问下去


我将感谢任何帮助。谢谢。

您有三列数据集(分别为姓名、年龄、眼睛颜色)吗?并且用户会输入眼睛的颜色,您需要输出相应的姓名和年龄吗?如果我错了,请纠正我


每个人的眼睛颜色都是独一无二的吗?如果是这样,按照您已经做过的操作,您可以使用
eyeColor
的索引来获取相应的姓名和年龄。

您要做的是在eyeColor中循环,然后简单地用绿色打印匹配的。将绿色替换为带有用户输入的变量(将所有内容转换为类似大小写)。如果需要一个匹配项,请在If末尾添加一个分隔符

name = ["joe", "jane", "jill", "bill"];
age = [20, 21, 19, 24];
eyeColor = ["blue", "green", "black", "brown"];
for index in range(len(eyeColor)):
    if eyeColor[index] == "green":
        print(name[index],age[index],eyeColor[index])

在您的情况下,我建议您使用类。在您的示例中,它应该如下所示:

class Person:
    def __init__(self, name, age, eyeColor):
        self.name = name
        self.age = age
        self.eye = eyeColor

Joe = Person('joe', 20, 'Blue')
Jane = Person('jane', 21, 'Green')
Jill = Person('jill', 19, 'Black')
Bill = Person('bill', 24, 'Brown')
如果要打印某人的属性,可以这样做,例如(对于Joe):


根据您对郭若瑜问题的回答

您应该做的第一件事是用眼睛颜色计算列的索引。可以通过迭代列表来执行此操作:

target_color = ""  # get this passed in
target_ix = None # what you're searching for

# enumerate proves an index and value for each member of an iterable 
for ix, color in enumerate(eyeColor):
   if eyeColor = target_color:
      target_ix = ix # assign your target value
      break # exit the loop - no need to continue because you've found the column
然后使用此索引引用其他列表中的列值:

print(f"{name[target_ix]} is {age[target_ix]} years old and has {target_color} eyes")

你认为
print(name=age=eyeColor)
应该做什么?@ScottHunter我不知道。我以为它会这样做:joe=20=Blue我为这个愚蠢的问题感到抱歉,但这意味着什么?我该怎么做?对于这个愚蠢的问题,我真的很抱歉。我不懂。还有,是的。你是对的。根据不同的场景,有很多方法可以做到这一点。如果
eyeColor
在您的数据中是唯一的(没有两个人拥有相同的eyeColor),您可以使用a,并使用
eyeColor
作为键,
name,age
作为值。我使用您的代码完成了代码,最后我找到了如何做以及数据结构如何工作!!非常感谢你!
print(f"{name[target_ix]} is {age[target_ix]} years old and has {target_color} eyes")