Мне нужно сопоставить переменные a и b списку координат x, y в текстовом файле с определенными условиями - PullRequest
0 голосов
/ 07 февраля 2019

Использование python 2.7.

У меня есть текстовый файл с координатами x, y.

Я хочу сопоставить различные комбинации координат, доступные в текстовом файле, и присвоить ему номер, а также распечатать его "круто".Например, координата 3,1 должна быть 1. Координата 1,1 должна быть 2, а координата 3,3 должна быть 3.

У меня проблемы с модулем csv для чтения в моем файле.

Я попытался упростить свой код, как это, и это работает, но когда я пытаюсь прочитать в моем файле, не найдено никаких успешных совпадений.

coordinates = 'all_6_ligand_coordinates.dat'
a = 3
b = 1
with open(coordinates,'r') as file_in:
    reader = csv.reader(file_in)
    your_list = list(reader)
    for x, y in your_list:
        if x == a and y == b:
           print("Cool")
           print("1")
        else: 
           print("sucks to be you")

Я ожидаю, что мой код будет перебирать all_6_ligand_coordinates.dat иесли (x, y) равен (3,1), он выводит «круто».

Я прикрепил файл all_6_ligand_coordinates.dat в виде ссылки в раскрывающемся списке https://www.dropbox.com/s/p124z50pgozajrh/all_6_ligand_coordinates.dat?dl=0.

Спасибо за вашу помощь!

изменить: забыли добавить печать ("1")

1 Ответ

0 голосов
/ 07 февраля 2019

list(reader) возвращает список строк, которые не будут совпадать при сравнении с вашими целыми числами.

Просто нужно изменить две строки:

 a = 3   
 b = 1

import csv

coordinates = 'all_6_ligand_coordinates.dat'
a = '3'
b = '1'
with open(coordinates,'r') as file_in:
    reader = csv.reader(file_in)
    your_list = list(reader)
    for x, y in your_list:
        if x == a and y == b:
           print("Cool")
           print("1")
        else: 
           print("sucks to be you")

распечатывает длинный список из 88811 строк, некоторые
Cool 1
и другие
sucks to be you

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