在嵌套列表python中访问元组元素

时间:2020-06-16 09:17:08

标签: python python-3.x list for-loop tuples

我是python的新手,我有一个带有嵌套列表的列表,并且在其中包含如下所示的元组

[('dad', 'mom', 'test1.txt')]
[('brother', 'sister', 'test2.txt')]
[('uncle', 'aunty', 'test3.txt')]
[('grandpa', 'grandma', 'test4.txt')]

我想一次访问一个列表,例如,我从第一个列表索引[2] 中打开test1.txt文件,并且如果字符串'dad'和'mom如果存在“兄弟”和“姐妹” ,则存在'然后过滤文件并同样读取text2.txt文件。

我有以下代码:

for data in list:
    file= data[2]
    text_file= open(file,'r').readlines()
    if data[0], data[1] in text_file:
    #do something..

上面的代码没有按照要求为我提供适当的输出。有人可以用这种方法帮助我吗?

谢谢!

4 个答案:

答案 0 :(得分:1)

这是我的方法:

lis=[[('dad', 'mom', 'test1.txt')],
    [('brother', 'sister', 'test2.txt')],
    [('uncle', 'aunty', 'test3.txt')],
    [('grandpa', 'grandma', 'test4.txt')]]
for i in range(len(lis)):
    for j in lis[j]:
        f = open(i[2])
        lines = f.read()
        if i[0] in lines and i[1] in lines:
            #do sth

我已经迭代了length of the list: len(lis)范围中的列表的元素。这样j就可以得到值0, 1, 2, 3。然后,我使用了for loop来遍历列表中的元素。因此,jlis的元素值假定为lis[0], lis[1], lis[2], lis[3]

现在j具有列表元素的值,我们可以使用i[(integer)]并访问列表元素的元素,即"dad", "mom", "test1.txt"等。

因此,我们可以将条件应用于i[0] or i[1]等。

例如:

if i[0] == "dad":
    print(something)

希望这对您有帮助!

答案 1 :(得分:0)

由于您读取了4次正确的文件名,因此不清楚您出了什么问题

我想如果使用break语句找到要查找的内容,则必须退出for循环。

答案 2 :(得分:0)

尽量不要使用诸如list的关键字

L=[[('dad', 'mom', 'test1.txt')],
[('brother', 'sister', 'test2.txt')],
[('uncle', 'aunty', 'test3.txt')],
[('grandpa', 'grandma', 'test4.txt')]]
for data in L:
  f=data[0][2]
  file1=open(f,"r")
  text_file=file1.read()
  if(data[0][0] and data[0][1] in text_file):
     #do something

答案 3 :(得分:0)

lis=[[('dad', 'mom', 'test1.txt')],
    [('brother', 'sister', 'test2.txt')],
    [('uncle', 'aunty', 'test3.txt')],
    [('grandpa', 'grandma', 'test4.txt')]]
for i in lis:
    data=i[0][2]
    f=open(data,'r')
    file=f.read()
    if (i[0][0] and i[0][1])in file:
        pass