搜索在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