在列表中查找字符串的位置 - Python

0 投票
4 回答
2311 浏览
提问于 2025-04-16 11:03

如果我在一个字典里有一系列的列表(比如说):

{'Name': ['Thomas', 'Steven', 'Pauly D'], 'Age': [30, 50, 29]}

我想找到某个字符串的位置,这样我就可以从另一个列表中获取相同位置的内容。

举个例子:

if x = 'Thomas' #is in position 2:
    y = dictionary['Age'][2]

4 个回答

1

你想使用 .index() 方法。

d = {'Name': ['Thomas', 'Steven', 'Pauly D'], 'Age': [30, 50, 29]}
position = d['Name'].index('Steven')
age = d['Age'][position]

或者可以更简洁地写成 age = d['Age'][d['Name'].index('Steven')]

5

一开始就把它放在合适的结构里。

D = dict(zip(dictionary['Name'], dictionary['Age']))
print D['Thomas']
2
i = dictionary['Name'].index('Thomas')
y = dictionary['Age'][i]

不过,index 是线性搜索,这在处理大列表时可能会比较慢。在类似的情况下,我通常会使用这样的方式:

Person = collections.namedtuple('Person', ['Name', 'Age'])
dictionary = {'Thomas': Person('Thomas', 30), 'Steven': Person('Steven', 50), 'Pauly D': Person('Pauly D', 29)}

如果你需要记录的长度不一样,也可以用字典来做同样的事情。不管怎样,这样存储数据会让访问记录的速度更快。

撰写回答