搜索在Python列表元素搜索元素,然后访问特定值在Python列表
Mylist = [('A',3,['x','y','z']),('B',2,['m','n'])]
Variable = 'A'
i = Mylist.index(Variable)
print i
例如我想检查是否是可变的存在并访问它的元素等 存在,则例如,在上面的例子中,我想检查'A'是否存在,如果是,则 可以访问其各个子列表元素,如'x','y'和'z'
搜索在Python列表元素搜索元素,然后访问特定值在Python列表
Mylist = [('A',3,['x','y','z']),('B',2,['m','n'])]
Variable = 'A'
i = Mylist.index(Variable)
print i
例如我想检查是否是可变的存在并访问它的元素等 存在,则例如,在上面的例子中,我想检查'A'是否存在,如果是,则 可以访问其各个子列表元素,如'x','y'和'z'
你只需要使用字典...
myDict = dict([('A',3,['x','y','z']),('B',2,['m','n'])])
if 'A' in myDict:
val = myDict['A']
它看起来像你有没有发现Python的字典呢。也许你的意思是:
mydict = {}
mydict['A'] = {'count': 3, 'letters': ['x','y','z']}
mydict['B'] = {'count': 2, 'letters': ['m','n']}
mydict
是本身包含的字典词典。
你可以再看看他们了:
val = mydict['A']
print val['letters']
当然,还有在存储“计数”,因为你可以只使用len()
如果你需要小点。你可以做到这一点,像这样:
mydict = {'A': ['x','y','z'], 'B': ['m','n']}
print mydict['A']
正如其他人所说,一个字典是真的,当你用任意的数据类型(如字符串),需要的东西指数使用适当的数据类型。对于嵌套序列,不能保证你的'索引'(在这种情况下'A'和'B')将是唯一的,并且需要一些额外的扭曲来查找值。也正如其他人所说,无论它是列表中的列表还是列表,['x','y','z']部分将仍然保持顺序,无论它是列表中的元组列表还是列表-in-A-字典。
这么说,我能想到的找到你想要的元组,而无需使用字典的最简单的方法是:
indices = zip(*Mylist)[0] # ('A', 'B')
index = indices.index('A') # 0
result = Mylist[index] # ('A', 3, ['x', 'y', 'z'])
要获取的子表,使用其指数:
sublist = result[2]
或解压缩:
lookup, length, sublist = result
Mylist = [('A',3,['x','y','z']),('B',2,['m','n']),
('C',5,['r','p','u']),('A',10,['k','X']),
('E',8,['f','g','h','j'])]
for i,(a,b,c) in enumerate(Mylist):
if a=='A':
print i,c
结果
0 ['x', 'y', 'z']
3 ['k', 'X']
好的,但我不能搜索列表?对我来说也是我的'A'中的单个元素的顺序,我希望按顺序打印x,y和z – rohit 2011-03-27 21:23:11