Python однострочный для отображения массива в строковый формат - PullRequest
0 голосов
/ 11 июля 2020

Подобно javascript, как я могу сопоставить список со строковым форматом в Python?

Например,

final_str = mylist.map(n => f'{n.id} {n.name}\n')

И результирующая строка будет

id1 name1
id2 name2
...etc

Ответы [ 3 ]

1 голос
/ 11 июля 2020

Сначала определите класс с атрибутами id и name. И включите метод __str____repr__ было бы неплохо):

In [257]: class Foo(): 
     ...:     def __init__(self,id,name): 
     ...:         self.id=id 
     ...:         self.name=name 
     ...:     def __str__(self): 
     ...:         return f'{self.id} {self.name}' 
     ...:                                                                                            

Создайте пример:

In [258]: Foo('id1','name1')                                                                         
Out[258]: <__main__.Foo at 0x7fa6531c5160>
In [259]: print(_)                                                                                   
id1 name1

Затем составьте список строк (класс делая тяжелую работу):

In [260]: [str(n) for n in [Foo('id1','name1'), Foo('id2','name2')]]                                 
Out[260]: ['id1 name1', 'id2 name2']

и сделать одну строку с \ n:

In [261]: print('\n'.join(_))                                                                        
id1 name1
id2 name2
1 голос
/ 11 июля 2020

Используйте join() с выражением генератора:

final_str = '\n'.join(f"{item.id} {item.name}" for item in mylist)
0 голосов
/ 11 июля 2020

Для достижения того же может использоваться понимание списка:

l = [1, 2, 3]
[str(i)+'\n' for i in l]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...