С помощью oop, например:
index = [(1, 2), (1, 4), (1, 5), (2, 3), (3, 3), (4, 5)]
condition = ['Na', 6, 1, 'Na', 10, 5]
for i in range(len(index)):
if condition[i] != 'Na' and condition[i] <= 5:
m, n = index[i][0] - 1, index[i][1] - 1
a[m][n] = 1
a[n][m] = 1
, вы можете получить следующий результат
[[0, 0, 0, 0, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 1],
[1, 0, 0, 1, 0]]
Ошибка в предложенном вами решении. (1, 4) <= 5 --> False --> a[1, 4] = 0
должно иметь место.
Вот чтение данных, включенных с использованием pandas.
import pandas as pd
data = pd.read_csv('input.dat', sep=' ')
data.Na = data.Na.apply(lambda x: int(x) if not x == 'Na' else 0)
for i in range(len(data)):
if data.Na[i] != 'Na' and data.Na[i] <= 5:
m, n = data.iloc[i, 0] - 1, data.iloc[i, 1] - 1
a[m][n] = 1
a[n][m] = 1
также предоставляет решение :
a =
[[0, 0, 0, 0, 1],
[0, 0, 1, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 0, 0, 1],
[1, 0, 0, 1, 0]]