Как извлечь информацию из списка кортежей и как записать более одной информации в строку? - PullRequest
0 голосов
/ 19 декабря 2018

Мне интересно, как я могу решить эту проблему ... Мой ввод: [(18.41870765673129, 9.511001141278493), (17.013801776758395, 14.63476877634968)], и я хотел бы написать с информацией о кортеже, один файл так:

18.41870765673129, 9.511001141278493
17.013801776758395, 14.63476877634968

Я хотел быесть две информации в строке.Мой сценарий:

def write(filename, l):
    with open(filename,"w") as file:
         for i in range(len(l)):
             for j in l[i]:
                 s = str(j)
                 file.write(s)

Но мой сценарий не работает, потому что выход:

18.418707656731299.51100114127849317.01380177675839514.63476877634968

Спасибо !!!

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Попробуйте:

def write(filename, l):
    with open(filename,"w") as file:
         for i,j in l:
             file.write('{}, {}\n'.format(i, j))

Если вы используете Python3.6 или выше, вы можете изменить строку write на:

file.write(f'{i}, {j}\n')
0 голосов
/ 19 декабря 2018

Попробуйте это ...

for i in range(len(l)):
    for j in range(len(l[i])):
        if j < len(l[i]) - 1:
            s = s + str(l[i][j]) +", "
        else:
            s = s + str(l[i][j]) +"\n"
        file.write(s)
0 голосов
/ 19 декабря 2018

Попробуйте

def write(filename, l):
    with open(filename, "w") as file:
         for t in l:
             file.write(', '.join([str(s) for s in t]))
             file.write('\n')

Примечание: указывать длину списка необязательно:

for i in range(len(l)):

, просто получите все кортежи внутри l

for t in l:

Команда ниже берет все части кортежа и преобразует их в строку.Затем строки соединяются.

', '.join([str(s) for s in t])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...