Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2021, 10:38   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию Раскидать строки массива

здравствуйте, код:
Код:
list_file_text_splitlines = ['str1', ';edmn;', ';var1', ';var2', ';var3', ';var4', ';var5', ';var6']
str1, edmn, var1, var2, var3, var4, var5, var6 = [], [], [], [], [], [], [], []
listq = [str1, edmn, var1, var2, var3, var4, var5, var6]
for x in list_file_text_splitlines:
    print(x.startswith(';var'))
    if x.startswith(';edmn;') == False and x.startswith(';var') == False:
        listq.append(x)
    elif x.startswith(';edmn;'):
        listq.append(x)
    elif x.startswith(';var1'):
        listq.append(x)
    elif x.startswith(';var2'):
        listq.append(x)
    elif x.startswith(';var3'):
        listq.append(x)
    elif x.startswith(';var4'):
        listq.append(x)
    elif x.startswith(';var5'):
        listq.append(x)
    elif x.startswith(';var6'):
        listq.append(x)
print(len(list_file_text_splitlines))
print(len(str1))
print(str1)
не залетают, данные по нужным массивам, ответ:
8
0
[]
прошёлся в дебаге по коду, везде зашло в ветку, но почему на выходе пусто? спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 11:34   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

додаете ведь в listq. Может его выводить надо?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.01.2021, 11:42   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

понял, а как сделать, чтобы раскидывало на 8 массивов по условию?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 12:03   #4
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию

Во-первых, дайте угадаю, перед питоном Вы изучали паскаль или С++?

Что мешало написать так: if x.startswith('str'):? Объясните подробней, что именно Вы хотели.
Сама ошибка возникает из-за этого: listq.append(x). Что такое у Вас listq? Двумерный массив. И Вы добавляете в конец него новые значения. Посмотрите результат, написав в конец программы print(listq).
Если Вы хотите отсортировать значения, добавляйте их в нужные массивы:
Код:
    if not x.startswith(';edmn;') and not x.startswith(';var'):
        str1.append(x)
    elif x.startswith(';edmn;'):
        edmn.append(x)
    elif x.startswith(';var1'):
        var1.append(x)
    elif x.startswith(';var2'):
        var2.append(x)
    elif x.startswith(';var3'):
        var3.append(x)
    elif x.startswith(';var4'):
        var4.append(x)
    elif x.startswith(';var5'):
        var5.append(x)
    elif x.startswith(';var6'):
        var6.append(x)
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 25.01.2021, 12:17   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

Цитата:
Сообщение от VeryStupidPerson Посмотреть сообщение
Во-первых, дайте угадаю, перед питоном Вы изучали паскаль или С++?
да, выдало
if ..... == False
спс - самое то
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2021, 12:46   #6
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию

Выдали скорее первые три строки, заметно, что Вы привыкли пользоваться массивами, с неизменяемой длиной.
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 27.01.2021, 12:59   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

подскажите, пжл
если у меня было
Код:
var6 = []
и потом
Код:
var6.append(x)
на выходе получится
['[сс]', '[тт]']
можно его наращивать, на подобии
['сс', 'тт']
чтобы не было массива в массиве?
спс
Ципихович Эндрю вне форума Ответить с цитированием
Старый 27.01.2021, 15:08   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
var6.extend(x)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 27.01.2021, 15:17   #9
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

спасибо большое
Ципихович Эндрю вне форума Ответить с цитированием
Старый 27.01.2021, 16:09   #10
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

поторопился
extend - добавляет в конец списка итерируемую последовательность, она в круглых кавычках
это как сделать?
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива griignat Помощь студентам 1 22.11.2011 20:04
Раскидать 2 формы на 2 монитора ArtGrek Общие вопросы Delphi 19 08.03.2011 22:12
Диапазон раскидать по ячейкам bysteps Microsoft Office Excel 7 20.03.2010 23:31
Как "раскидать" строки по 4 Листам? PVAOD Microsoft Office Excel 4 10.12.2009 05:20
Раскидать изображения по странице Laita HTML и CSS 3 31.08.2009 17:07