Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359

Что работает быстрее, ввод с консоли или ввод с файла?

13.09.2018, 00:16. Показов 4331. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вводятся множество списков программа удаляет первое число списка и удаляет все числа в этом списке если встречается 1.
потом она их сортирует.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
h = {}
i = 0
for _ in range(int(input())):
    s = input()[2:]
    s = s.split()
    if '1' in s:
        s = s[:s.index('1') + 1]
    h[i] = [float(item) for item in s]
    s = []
    print(h[i])
    i += 1
 
sorted_list = sorted(h.items(), key=lambda x: (len(x[1]), x[1]))
print(' '.join(str(i + 1) for i, _ in sorted_list))




C++
1
ios_base::sync_with_stdio(0);
// такая строка в c++ ускоряет ввод и вывод в c++ есть аналог в питоне?


пример в ввода
20 # количество списков
5 3 4 4 2 3 3 #5 количество элементов в этом списке -1
5 2 3 4 3 2 3
6 3 3 3 2 2 4 4
6 2 2 3 3 2 2 3
3 2 2 2 2
4 4 4 2 3 3
4 3 3 3 2 3
2 3 2 3
4 4 2 2 2 3
2 3 4 4
3 3 4 4 4
5 4 2 4 2 2 4
3 2 3 2 4
5 3 2 2 4 2 3
2 3 2 2
5 2 4 2 2 2 2
6 2 4 3 4 4 2 2
4 2 4 3 4 4
6 2 2 4 4 2 4 2
6 4 2 2 4 4 3 3
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.09.2018, 00:16
Ответы с готовыми решениями:

Переделать ввод с консоли на ввод из файла
Здравствуйте! Написала программу, но результат таков: я брала информацию из строки. Мне нужно, чтобы брать информацию из файла, а не из...

Чтение из файла или ввод с консоли, в зависимости от выбранного режима
У меня есть программа для обработки двумерного массива (поиск минимума, замена на случайное число и т.д.). Вот её начало: string...

Пропускает ввод данных в консоли. Не работает часть кода. Пропускает ввод фио
Добрый день! Помогите пожалуйста! В void add_dinamo() пропускает cout<<"ФИО: \t" ; cin.getline(b.fio, 49); а дальше...

11
14 / 11 / 3
Регистрация: 12.09.2018
Сообщений: 61
13.09.2018, 02:31
Цитата Сообщение от Александрррррпд Посмотреть сообщение
ios_base::sync_with_stdio(0);
И как сильно ускоряет? Зачем вам что-то ускорять?
0
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
13.09.2018, 02:51  [ТС]
Цитата Сообщение от martin23 Посмотреть сообщение
И как сильно ускоряет? Зачем вам что-то ускорять?
раза в три
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
13.09.2018, 11:31
Лучший ответ Сообщение было отмечено Александрррррпд как решение

Решение

Ну… можешь попробовать читать ввод напрямую из sys.stdin:

Python
1
2
3
import sys
 
t = sys.stdin.read()
Если нужна скорость, то я подумал бы над переписыванием алгоритма, в частности чтения исходных данных:
Python
1
2
3
4
ls = sys.stdin.read().split('\n')
for line in ls[1:]:  # первую строку пропускаем
    l = line.split(' ')
    print(l)
1
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
13.09.2018, 17:26
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
читать ввод напрямую из sys.stdin
Если стандартные потоки не перенаправленны (и для обоих, и для stdin, и для stdout, метод isatty возвращает True), т.е. являются стандартными сишными потоками, input читает из stdin (и пишет в stdout) напрямую, fgets'ом (и fprintf'ом).

Так, что теоретически input - это быстро (хотел было сказать, быстрее stdin.read(), но напрочь не помню как оно там реализовано, не хочу наврать больше, чем соврал. А соврать я мог, поскольку) У меня нет уверенности, что я не перепутал это дело с другой оперой, идти в код в данный момент очень не хочется, поэтому приношу извенения, если не прав...
0
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
14.09.2018, 01:51  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
сли нужна скорость, то я подумал бы над переписыванием алгоритма, в частности чтения исходных данных:
а как это в мой код встроить? я попытался не вышло

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
h = {}
i = 0
import sys
 
for _ in range(int(input())):
    ls = sys.stdin.read().split('\n')
    s = s.split()
    for line in ls[1:]:
        l = line.split(' ')
    h[i] = [float(item) for item in s]
    s = []
    print(h[i])
    i += 1
 
sorted_list = sorted(h.items(), key=lambda x: (len(x[1]), x[1]))
print(' '.join(str(i + 1) for i, _ in sorted_list))
Добавлено через 2 часа 50 минут
а как для этой части написать ввод через sys.stdin?
for _ in range(int(input())):
s = input()[2:]

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import sys
h = {}
i = 0
for _ in range(int(input())):
    s = input()[2:]
    s = s.split()
    if '1' in s:
        s = s[:s.index('1') + 1]
    h[i] = [float(item) for item in s]
    s = []
    print(h[i])
    i += 1
 
sorted_list = sorted(h.items(), key=lambda x: (len(x[1]), x[1]))
sys.stdout.write(' '.join(str(i + 1) for i, _ in sorted_list))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.09.2018, 04:41
Цитата Сообщение от Александрррррпд Посмотреть сообщение
а как для этой части написать ввод через sys.stdin?
for _ in range(int(input())):
s = input()[2:]
Написано выше:
Python
1
2
3
4
ls = sys.stdin.read().split('\n')
for line in ls[1:]:  # первую строку пропускаем
    l = line.split(' ')
    print(l)
0
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
14.09.2018, 05:56  [ТС]
посмотрите пожалуйста я числа подаю но ничего не выходит


Python
1
2
3
4
5
import sys
ls = sys.stdin.read().split('\n')
for line in ls[1:]:  # первую строку пропускаем
    l = line.split(' ')
    print(l)
я в свою встроил тоже ничего не выходит.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys
 
h = {}
i = 0
ls = sys.stdin.read().split('\n')
for line in ls[1:]:
    s = line.split(' ')
    s = s.split()
    if '1' in s:
        s = s[:s.index('1') + 1]
    h[i] = [float(item) for item in s]
    s = []
    print(h[i])
    i += 1
 
sorted_list = sorted(h.items(), key=lambda x: (len(x[1]), x[1]))
sys.stdout.write(' '.join(str(i + 1) for i, _ in sorted_list))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.09.2018, 08:25
В консоли водите? После того как всё ввели, нажмите ctrl+D
0
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
14.09.2018, 11:28  [ТС]
спасибо а посмотрите мой код у меня вообще ничего не происходит,а без контрл д возможно сделать так чтобы как ввёл само запускалось?


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys
 
h = {}
i = 0
ls = sys.stdin.read().split('\n')
for line in ls[1:]:
    s = line.split(' ')
    s = s.split()
    if '1' in s:
        s = s[:s.index('1') + 1]
    h[i] = [float(item) for item in s]
    s = []
    print(h[i])
    i += 1
 
sorted_list = sorted(h.items(), key=lambda x: (len(x[1]), x[1]))
sys.stdout.write(' '.join(str(i + 1) for i, _ in sorted_list))
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.09.2018, 16:27
Цитата Сообщение от Александрррррпд Посмотреть сообщение
а без контрл д возможно сделать так чтобы как ввёл
Нет.

Послушайте shsv, тот говорит, что выигрыша в скорости скорей всего не будет.
1
4 / 4 / 1
Регистрация: 17.09.2017
Сообщений: 359
15.09.2018, 08:48  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
ослушайте shsv, тот говорит, что выигрыша в скорости скорей всего не будет.
почему с ++ тогда есть ускорение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.09.2018, 08:48
Помогаю со студенческими работами здесь

Не работает ввод или вывод структуры в или из файла
не работает только с теми частями программы которые закомментированы, все остальное работает #include <stdio.h> #include...

почему не работает ввод из файла? что нужно исправть??
почему не работает ввод из файла? что нужно исправть?? помогите! Program Matrix; const m=15; n=10; {размерности массивов}...

Не работает ввод данных с консоли
Здравствуйте, нужно до завтра сделать один проект. А я до этого с java не работал вообще. Помогите разобраться, пожалуйста. Скажу заранее,...

Ввод имени файла и текста с консоли
Помогите пожалуйста! #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; int _tmain(int argc,...

Ctrl+Z или Как закончить ввод с консоли?
Не получается найти ошибку #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h> #define STACKSIZE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru