按索引从列表列表中访问元素

时间:2017-06-12 10:42:18

标签: python python-2.7 list

我有一个列表,如:

[ ['key1287', 'key5842', 'key3209','key5940', 'key42158', 'key43402', 'key31877', 'key51205', 'key2886'], 
  ['key41931', 'key41931', 'key41931', 'key41931'], 
  ['key453','key0090'], 
  ['key45333','key5432'],
  ['key453313','key51432'] ]

如何逐个访问第一个和第二个索引中的元素?

提前致谢。

EDITED

假设我有许多列表的列表。列表的长度未知。假设30000.经过一些计算后,我最终想要获取列表的30和31索引的元素(一个接一个)。这些指数也是未知的。我在运行时知道它们。有人可以帮我这个吗?

再次感谢你。

4 个答案:

答案 0 :(得分:3)

在所需位置切片并chain结果:

def get_sublist_items(the_list, index=0, n=2):
    return chain.from_iterable(the_list[index:index + n])

答案 1 :(得分:0)

for key in listoflists[0]+listoflists[1]:
   # do your magic

答案 2 :(得分:0)

我建议使用链:

from itertools import chain
superlist = [["a", "b"], ["c", "d"], ["e", "f"]]
for element in chain(superlist[0], superlist[1]):
    print(element)
# or
for element in chain.from_iterable(superlist[0:2])
    print(element)

他们都输出:

a
b
c
d

链迭代第一个列表直到完成,然后从以下开始,依此类推。 这非常有效,因为不需要创建一个新列表,它是要迭代的列表的总和。

更新

如果索引可能有所不同,您可以执行以下操作:

def get_sublist(superlist, index, n):
    return chain.from_iterable(superlist[index:index + n])

for element in get_sublist(superlist, 30, 2):
    print(element)

答案 3 :(得分:0)

您想要子列表的第一个和第二个元素吗?

your_list = [ ['key1287', 'key5842', 'key3209','key5940', 'key42158', 'key43402', 'key31877', 'key51205', 'key2886'], 
  ['key41931', 'key41931', 'key41931', 'key41931'], 
  ['key453','key0090'], 
  ['key45333','key5432'],
  ['key453313','key51432'] ]
s=[(sublist[0],sublist[1]) for sublist in your_list]

print(s)

输出:

[('key1287', 'key5842'), ('key41931', 'key41931'), ('key453', 'key0090'), ('key45333', 'key5432'), ('key453313', 'key51432')]