Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/88: Рейтинг темы: голосов - 88, средняя оценка - 4.98
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324

Преобразование списка из str в int

29.11.2019, 10:47. Показов 18720. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Я передал от сервера клиенту Список
PHP/HTML
1
(0, 2, 4, 1, 3)
Как мне все числа преобразовать в int? пробовал так
Python
1
2
3
for i in str2.split():
    s = int(i)
    print(s)
Выдает ошибку invalid literal for int() with base 10: '(1,'
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2019, 10:47
Ответы с готовыми решениями:

Преобразование str в int
Добрый день, гуру программирования. Прошу помочь в такой проблеме. Мне необходимо сделать листинг каталога и сравнить то что нашлось с...

Преобразование типов int в str
Ребята как здесь реализовать правильно преобразование int в str; BM.SetYear((string)fbooks->textBox4->Text); Добавлено через 4...

Задача на преобразование str в int
Задание подробно описано внутри алгоритма задачи.. Помогите найти ошибку чего то я где-то напутал..( #include <stdio.h> ...

13
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
29.11.2019, 10:52
устали мы с тобой, почему не читаешь?
Цитата Сообщение от Mindfure Посмотреть сообщение
Выдает ошибку invalid literal for int() with base 10: '(1,'
что тут не так? перевел? давай подумаем вместе! хммм...чет он скобку показывает. О! Идея - может он не может скобку превратить в инт? как думаешь?
может удалить из строки скобки перед тем как сплитить по запятой? подчеркиваю - сплит надо делать по запятой а не пробелу
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
29.11.2019, 11:01
Welemir1, я чего-та не понимаю, но то, что у него уже в инте, ведь если нет, то должно быть так:

('0', '2', '4', '1', '3')

если так: (0, 2, 4, 1, 3), то просто цикл перебора элементов, они уже в инт.

Добавлено через 1 минуту
Получается у него кортеж, то там всё равно инты.

Добавлено через 9 секунд
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
29.11.2019, 11:04
Цитата Сообщение от Damenikx Посмотреть сообщение
я чего-та не понимаю,
да, у него '(0, 2, 4, 1, 3)'
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
29.11.2019, 11:04  [ТС]
Damenikx, Нет, я отправил это серверу, а он преобразовал в str

Отправка сервером:
Python
1
conn.send((str)(key).encode('utf-8'))
Принятие клиентом:
Python
1
2
data2 = sock.recv(16384)  
str2 = (data2.decode('utf-8'))
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
29.11.2019, 11:05
просто он пишет список, приводит кортеж, а имеет в виду строку))) классика
1
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
29.11.2019, 11:05  [ТС]
Welemir1, Из-за передачи она может полностью стать str?
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
29.11.2019, 11:14
Цитата Сообщение от Welemir1 Посмотреть сообщение
просто он пишет список, приводит кортеж, а имеет в виду строку))) классика
Я поэтому 3 раза читаю, 3 раза понять не могу.

Добавлено через 7 минут
Mindfure, вот: (сейчас Welemir1 будет ругаться )

Python
1
2
3
4
5
6
7
8
str2 = '(1, 2, 3, 4, 5)'
res1 = str2.replace('(',"")
res2 = res1.replace(')',"")
print(res2)
 
for i in res2.split(', '):
    s = int(i)
    print(s)
1
8 / 7 / 6
Регистрация: 13.02.2016
Сообщений: 180
29.11.2019, 11:14
Цитата Сообщение от Mindfure Посмотреть сообщение
Welemir1, Из-за передачи она может полностью стать str?
Не только может но и непременно станет
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
29.11.2019, 11:30
Лучший ответ Сообщение было отмечено Mindfure как решение

Решение

Mindfure, кучу переменных можно не делать, это я для вас, чтобы вы видели, как это происходит. Можно менять сразу же получившуюся строку:

Python
1
2
3
4
5
6
7
8
str2 = '(1, 2, 3, 4, 5)'
str2 = str2.replace('(', "")
str2 = str2.replace(')', "")
 
 
for i in str2.split(', '):
    s = int(i)
    print(type(s))
Добавлено через 1 минуту
Ещё можно через регулярки.

Добавлено через 4 минуты
Через регулярки, вот:

Python
1
2
3
4
5
6
import re
str2 = '(1, 2, 3, 4, 5)'
line = re.sub('[(),]', '', str2)
for i in line.split(' '):
    s = int(i)
    print(type(s), s)
Добавлено через 4 минуты
Ну и на закуску:

Python
1
2
3
4
import re
str2 = '(1, 2, 3, 4, 5)'
x = [int(i) for i in re.sub('[(), ]', '', str2)]
for i in x: print(type(i), i)
1
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
29.11.2019, 11:38  [ТС]
Damenikx, Да, спасибо большое
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
29.11.2019, 12:27
Mindfure, а что бы не плясать с бубном передавайте объект
клиент
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import socket
import pickle
 
sock = socket.socket()
sock.connect(('localhost', 9090))
 
obj = {
    'a': 1,
    'b': [2, 3],
    'c': {
        'c1': 'abc',
    }
}
 
print('Send:', obj)
 
data = pickle.dumps(obj)
 
sock.sendall(data)
 
print('Close')
sock.close()
сервер
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import pickle
 
BUFFER_SIZE = 4096
 
 
import socket
sock = socket.socket()
sock.bind(('', 9090))
sock.listen(1)
 
print('Sock name: {}'.format(sock.getsockname()))
 
while True:
    conn, addr = sock.accept()
    print('Connected:', addr)
 
    all_data = bytearray()
 
    while True:
        data = conn.recv(BUFFER_SIZE)
        if not data:
            break
 
        print('Recv: {}: {}'.format(len(data), data))
        all_data += data
 
    print('All data ({}): {}'.format(len(all_data), all_data))
 
    obj = pickle.loads(all_data)
    print('Obj:', obj)
 
    print('Close')
    conn.close()
результат
клиент
Send: {'a': 1, 'b': [2, 3], 'c': {'c1': 'abc'}}
Close
сервер
Sock name: ('0.0.0.0', 9090)
Connected: ('127.0.0.1', 2602)
Recv: 66: b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01 K\x01X\x01\x00\x00\x00bq\x02]q\x03(K\x02K\x03eX\x01\x00\x00\x00cq\x04 }q\x05X\x02\x00\x00\x00c1q\x06X\x03\x00\ x00\x00abcq\x07su.'
All data (66): b'\x80\x03}q\x00(X\x01\x00\x00\x00aq\x01 K\x01X\x01\x00\x00\x00bq\x02]q\x03(K\x02K\x03eX\x01\x00\x00\x00cq\x04 }q\x05X\x02\x00\x00\x00c1q\x06X\x03\x00\ x00\x00abcq\x07su.'
Obj: {'a': 1, 'b': [2, 3], 'c': {'c1': 'abc'}}
Close
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
29.11.2019, 13:20  [ТС]
Semen-Semenich, Спасибо, я разобрался. Я делал на костылях раньше. Сейчас прочитал про json и сделал с помощью него. Но вижу можно сделать и через pickle
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.11.2019, 14:11
Цитата Сообщение от Mindfure Посмотреть сообщение
(str)(key)
В Python не существует такого синтаксиса приведения к строке.
Я понимаю, что вам кажется что будто бы это работает.
Работает. Но за счет того, что интерпретатор просто удаляет лишние скобки и оставляет просто str(key).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2019, 14:11
Помогаю со студенческими работами здесь

Вывод числа в drawstring, преобразование str в double и int
не работает прогррамма можеть кто поможет namespace WindowsFormsApplication12 { public partial class Form1 : Form { ...

Преобразование списка из String в int
Добрый день. Подскажите пожалуйста, в чем ошибка, у меня есть ArrayList со значениями,которые вводятся с клавиатуры в консольном режиме, до...

Ошибка return self.randrange(a, b+1) TypeError: can only concatenate str (not "int") to str
import random import sys from PyQt5 import uic from PyQt5.QtWidgets import QApplication Form, Window = uic.loadUiType("Design.ui") ...

Устранение ошибки can only concatenate str (not "int") to str
L=5 T=0 P=4 D=1 M=1 C=5 F=-5 A=1 B=3 q=-3

реализовать Функция, вставляющая в строку str строку s, начиная с позиции pos. void insert(char str[], char s[], int pos);
срочно помогите!!!!!!!!!!!!!!!!!!


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru