Как перебрать массив n-ой длинны и поместить его в строку с добавлением символов?

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
Есть массив:
Код:
[('число', 'переменная', 'строка', 'символ'), ('число1', 'переменная1', 'строка1', 'символ1'), ('число2', 'переменная2', 'строка2', 'символ2'), ('число3', 'переменная3', 'строка3', 'символ3'), ('число4', 'переменная4', 'строка4', 'символ4')]
Он может состоять из кол-ва строк от 1 до 5
Нужно перебрать его и на выходе получить строку:
Python:
str_result='число'+'\n'+ 'переменная'+' '+ 'строка'+'\n'+'символ'+'\n\n'+'число1'+'\n'+ 'переменная1'+' '+ 'строка1'+'\n'+'символ1'+'\n\n' #... и так до конца

Как это сделать максимально кратко?
 

Vlad_SD

Активный пользователь
Пользователь
Апр 7, 2020
91
45
18
Python:
_list = [
    ('число', 'переменная', 'строка', 'символ'),
    ('число1', 'переменная1', 'строка1', 'символ1'),
    ('число2', 'переменная2', 'строка2', 'символ2'),
    ('число3', 'переменная3', 'строка3', 'символ3'),
    ('число4', 'переменная4', 'строка4', 'символ4')
]
for value in _list:
    print(value[0])
    print(value[1], value[2])
    print(value[3], '\n')
если я тебя правильно понял, то ты это имел ввиду?
 

God

Уже не совсем ламер.
Пользователь
Апр 11, 2020
91
14
8
1. Ваш массив состоит из кортежей, которые состоят из строк.
2. Решение:
Python:
massiv = [
('число', 'переменная', 'строка', 'символ'), 
('число1', 'переменная1', 'строка1', 'символ1'), 
('число2', 'переменная2', 'строка2', 'символ2'), 
('число3', 'переменная3', 'строка3', 'символ3'), 
('число4', 'переменная4', 'строка4', 'символ4')
]
strings = '\n'.join([' '.join(a) for a in massiv])
 
Последнее редактирование:

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
Python:
_list = [
    ('число', 'переменная', 'строка', 'символ'),
    ('число1', 'переменная1', 'строка1', 'символ1'),
    ('число2', 'переменная2', 'строка2', 'символ2'),
    ('число3', 'переменная3', 'строка3', 'символ3'),
    ('число4', 'переменная4', 'строка4', 'символ4')
]
for value in _list:
    print(value[0])
    print(value[1], value[2])
    print(value[3], '\n')
если я тебя правильно понял, то ты это имел ввиду?

Не совсем так)
Мне нужна по итогу именно строка в которой будут указаны переносы
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Python:
_list = [
        ('число', 'переменная', 'строка', 'символ'),
        ('число1', 'переменная1', 'строка1', 'символ1'),
        ('число2', 'переменная2', 'строка2', 'символ2'),
        ('число3', 'переменная3', 'строка3', 'символ3'),
        ('число4', 'переменная4', 'строка4', 'символ4')
    ]
s = ""
for line in _list:
    s += '\n'.join(line)
    s += '\n'
print(s)
 

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
1. Ваш массив состоит из кортежей, которые состоят из строк.
2. Насчёт переносов я подумаю, но ничего не обещаю.
Решение:
Python:
massiv = [('число', 'переменная', 'строка', 'символ'), ('число1', 'переменная1', 'строка1', 'символ1'), ('число2', 'переменная2', 'строка2', 'символ2'), ('число3', 'переменная3', 'строка3', 'символ3'), ('число4', 'переменная4', 'строка4', 'символ4')]
string = ' '.join([' '.join(a) for a in massiv])
Классно, но переносы важны
Пока что я пришел к этому:

Код:
#data - массив из примера 
zz=' + '+'/n'+' + '
result_lst=[]
for i in range(0, 5):
    a=data[i][0]
    b=' '.join(data[i][1:3])
    c=data[i][3]
    d=a+zz+b+zz+c
    result_lst.append(d)

result=' + /n/n + '.join(result_lst)
print(result)

Я недавно с python, по этому не могу оценить на сколько это адекватно)
 

God

Уже не совсем ламер.
Пользователь
Апр 11, 2020
91
14
8
Классно, но переносы важны
Я исправил код. IDLE - кривая штука и не показывает переносы при тестах.
 

God

Уже не совсем ламер.
Пользователь
Апр 11, 2020
91
14
8
Я недавно с python, по этому не могу оценить на сколько это адекватно)

Я тоже недавно, но мне кажется, что не очень удобно, да и

число + /n + переменная строка + /n + символ + /n/n + число1 + /n + переменная1 строка1 + /n + символ1 + /n/n + число2 + /n + переменная2 строка2 + /n + символ2 + /n/n + число3 + /n + переменная3 строка3 + /n + символ3 + /n/n + число4 + /n + переменная4 строка4 + /n + символ4

странный. Это точно то, что вам нужно?
 

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
Я тоже недавно, но мне кажется, что не очень удобно, да и

число + /n + переменная строка + /n + символ + /n/n + число1 + /n + переменная1 строка1 + /n + символ1 + /n/n + число2 + /n + переменная2 строка2 + /n + символ2 + /n/n + число3 + /n + переменная3 строка3 + /n + символ3 + /n/n + число4 + /n + переменная4 строка4 + /n + символ4

странный. Это точно то, что вам нужно?

Скорее нет, так как тут /n и + - это часть строки, а нужен именно перенос и пробелы в нужных местах..
 

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
ну так, я написал вам решение)
Результат должен получиться таким:

Число(перенос)
Переменная(пробел)строка(перенос)
Символ(двойной перенос)

Число1(перенос)
Переменная1(пробел)строка1(перенос)
Символ1(двойной перенос)

...

В этом и сложность)
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Результат должен получиться таким:

Число(перенос)
Переменная(пробел)строка(перенос)
Символ(двойной перенос)

Число1(перенос)
Переменная1(пробел)строка1(перенос)
Символ1(двойной перенос)

...

В этом и сложность)
Python:
data = [
        ('число', 'переменная', 'строка', 'символ'),
        ('число1', 'переменная1', 'строка1', 'символ1'),
        ('число2', 'переменная2', 'строка2', 'символ2'),
        ('число3', 'переменная3', 'строка3', 'символ3'),
        ('число4', 'переменная4', 'строка4', 'символ4')
    ]
   
s = ""
for line in data:
    s += line[0] + '\n' + line[1] + ' ' + line[2] + '\n' + line[3] + '\n\n'
print(s)
 
  • Мне нравится
Реакции: zxqb и Vlad_SD

zxqb

Новичок
Пользователь
Апр 12, 2020
12
2
3
Python:
data = [
        ('число', 'переменная', 'строка', 'символ'),
        ('число1', 'переменная1', 'строка1', 'символ1'),
        ('число2', 'переменная2', 'строка2', 'символ2'),
        ('число3', 'переменная3', 'строка3', 'символ3'),
        ('число4', 'переменная4', 'строка4', 'символ4')
    ]
  
s = ""
for line in data:
    s += line[0] + '\n' + line[1] + ' ' + line[2] + '\n' + line[3] + '\n\n'
print(s)
СПАСИБО!
 

Форум IT Специалистов