2014-12-05 4 views
0

Даны два массива, гдеPython преобразование из массива в строки столбца

x=[1.2,2.2,3,4,5] 

и

y=[10,8.999,6,4,1] 

объединены в

data = [[1.2,2.2,3,4,5],[10,8.999,6,4,1]] 

выход должен соответствовать

data = ''' 
1.2 10 
2.2 8.999 
3 6 
4 4 
5 1 
''' 

Я думал о сохранении файла и чтении снова в формате, в котором я нуждаюсь, но задавался вопросом, есть ли более эффективный способ. Подобно противоположностью Python - Create an array from columns in file

ответ

3

Да, я считаю, правильный путь будет выглядеть примерно так:

>>> print "\n".join(["%s  %s" % t for t in zip(x,y)]) 
1.2  10 
2.2  8.999 
3  6 
4  4 
5  1 
>>> 
+0

Избили меня на 2 секунды :) –

+0

@ToClickorNottoClick может быть, потому что я видел этот вопрос первым, я голосовал вас. –

+0

@ToClickorNottoНажмите одну заметку, используйте вместо этого строку формата вместо '+'. –

2

Это то, что вы думали?

string = "".join(["{}\t{}\n".format(str(x), str(y)) for x, y in zip(a, b)]) 
print string #Converts to pretty format 

>>> a=[1.2,2.2,3,4,5] 
>>> b=[10,8.999,6,4,1] 
>>> string = "".join([str(x)+'\t'+str(y)+'\n' for x, y in zip(a, b)]) 
>>> print string 
1.2 10 
2.2 8.999 
3 6 
4 4 
5 1 

>>> 





Примечание: '\t' проявляется по-разному на разных консолях

+0

оба работают, но я дал голосование на 2 секунды раньше, спасибо :) – user1938107

+0

Нет проблем, понятно :) –

0

Преобразование Оба списка в словаре

x = [1.2,2.2,3,4,5] 
y = [10,8.999,6,4,1] 
dictionary = dict(zip(x, y)) 
print dictionary 
+0

почему использование 'dict', когда OP не говорил о диктаторе ?. –

0

Ziplist, а затем использовать форматирование.

In [114]: for i in (zip(x, y)): 
    print i[0],'\t',i[1] 
    .....:  
1.2  10 
2.2  8.999 
3 6 
4 4 
5 1 
Смежные вопросы