从其他列表中的数字中查找项目在另一个列表中的位置

Finding the position of an item in another list from a number in a different list

提问人:D. Forrester 提问时间:3/31/2017 最后编辑:Lightness Races in OrbitD. Forrester 更新时间:3/31/2017 访问量:294

问:

在我之前的问题的基础上,我想知道是否有办法将一个元素放在列表中并在另一个列表中找到该位置并将该位置中的内容作为变量返回。例如:

list1 = [0,1,2,3,4]
list2 = ["0","hello","my","name","is","Daniel"]

如果用户输入数字 14,程序将返回“hello Daniel”,因为计算机将 14 读取为 1 和 4,并在列表中找到位置作为示例。

我已经厌倦了希望它能起作用,但我无法更改代码,所以它确实起作用。有没有一种简单的方法可以做到[list2.index(x) for x in list1]

Python 列表 元素

评论

1赞 Peter Wood 3/31/2017
当然,有一种方法可以做到这一点。但你需要尝试。
0赞 AChampion 3/31/2017
是的,当然,你只需要变成单个数字,在SO中有很多问题。14
0赞 Peter Wood 3/31/2017
做什么用的?list1
0赞 Prune 3/31/2017
欢迎使用 StackOverflow。请阅读并遵循帮助文档中的发布指南。关于主题以及如何询问 在这里申请。StackOverflow 不是设计、编码、研究或教程服务。
1赞 Peter Wood 3/31/2017
' '.join(list2[int(index)] for index in str(number))

答:

0赞 Guido 3/31/2017 #1

我认为这将解决您的问题: 对于 List1 中的 X: 打印列表2[x]

这是你要问的吗?

0赞 Satish Prakash Garg 3/31/2017 #2

你可以做这样的事情:

input_num = 123
list1 = [0, 1, 2, 3, 4] # if list1 is not dervied from input number
list2 = ["0", "hello", "my", "name", "is", "Daniel"]
print(' '.join([list2[list1.index(int(ind))] for ind in str(input_num)]))

这将导致:

hello my name

另外,我建议你看看 https://docs.python.org/2/tutorial/datastructures.html 并尝试学习。