как проверить, равен ли элемент определенному индексу многомерного списка - PullRequest
1 голос
/ 08 ноября 2019

У меня есть два многомерных списка. Я должен проверить, находится ли элемент в многомерном списке. Мой код:

import tkinter as tk
from tkinter import filedialog
import numpy as np
import os
root= tk.Tk()
root.withdraw()
filepath =filedialog.askopenfilename(filetypes = (("trace files","*.trace"),("out files",".out")))
file=open(filepath)
file_path = file.name
ext= os.path.splitext(file_path)
readData=file.readlines()
list1=[]
list2=[]
pht=[[1,0]]
goodPred=0
badPred=0
count=0

for read in readData:
    split= read.split(' ')
    addr =split[0]
    action= split[1]
    list1.append([addr,action.strip()])


    # if(len(pht)>500):
    #     del pht[0]
for i in range(len(list1)):


    if list1[i][0] in pht ##how to check from index 1 of pht for eg:pht[##what to mention here##][1]##:

        list2_index = list2.index(list1[i][0])
        print(list2_index)
    else:
        # print(list1[i][0])
        list2.append(list1[i][0])

Мой список1 выглядит следующим образом:

[['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T'], ['3086703274', 'T']]

My PhtНапример,

[['1','3086703274'], ['1','3086703274'], ['1','3086703274',]]

Как использовать pht второго элемента каждого подсписка в списке и сравнить его со списком list [[i] [0]

1 Ответ

1 голос
/ 08 ноября 2019

if list1[i][0] in [val[1] for val in pht]:

Если pht является фиксированным списком, то, конечно, вы не собираетесь вычислять его в каждом цикле, но поместите [val[1] for val in pht] в новый список, такой как pht_keys, таким образом:

pht_keys = [val[1] for val in pht]
for index, element in enumerate(list1):
    if element[0] in pht_keys:
        list_2_index = list2.index(index)
...

Я не рекомендую использовать

for i in range(len(list1)):
   print(f'element index {i} is {list1[i]}')

Делайте это по-питонски с перечислением, если вам нужен индекс

for index, element in enumerate(list1):
   print(f'element index {index} is {element}')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...