python - 如何从两个单独的列表中获取两个值进行打印(python)

标签 python list zip

这是我的问题,我有两个不同的列表,列表 a其中包含人名和列表 b其中包含他们的电话号码:

a = ["peter", "bob", "john", "jack"]
b = ["8954 3434", "8999 4432", "8976 5443", "8990 3331"]

我需要做的是提示用户输入一个来自列表 a 的名称然后python应该自动从列表b中打印出那个人的电话号码。 .

我遇到了一个看起来很有趣的代码:

for x, y in zip(a, b):
    print x, y

这几乎打印了每个名字及其旁边相应的电话号码,这基本上是我所需要的,但是我需要的不是列表中出现的每个名字,而是让用户能够输入一个名字并显示该名称的电话号码。

澄清一下,使用上面的代码给出了输出:

peter 8954 3434
bob 8999 4432
john 8976 5443
jack 8990 3331

虽然我想要的是让用户能够输入一个名字,例如应该给出输出的“peter”:

peter 8954 3434

有没有办法编辑上面的代码来让事情正常工作?感谢您的帮助。

最佳答案

将你的数据放入字典中:

>>> a = ["peter", "bob", "john", "jack"]
>>> b = ["8954 3434", "8999 4432", "8976 5443", "8990 3331"]
>>> phone_numbers = dict(zip(a,b))

然后你可以从他们的名字中得到他的电话号码:

>>> phone_numbers['john']
'8976 5443'

如果你只想使用列表来做到这一点,你可以使用 index 但请注意,这会降低性能:

b[a.index('john')]
'8976 5443'

关于python - 如何从两个单独的列表中获取两个值进行打印(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230969/

相关文章:

PYTHON - 如何迭代变量列表并根据设置条件更改值?

python - 如何通过 2 个键对字典列表进行排序,其中一个键基于任意列表

c# - 关于使用 AES 加密进行 Zip 的廉价/免费 .NET 库的建议?

Maven - 依赖于组装的 zip

python - 文件生成没有限制?

Python 3.5 : Formatting a String with Spaces

python - 查找列表元素的所有组合,包括重复元素

zip - Open Office 如何压缩其文件?

python - 如何在redis中存储一个复杂的对象(使用redis-py)

python - Django 自定义字典响应