С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/165: Рейтинг темы: голосов - 165, средняя оценка - 4.93
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
1

Вывод элементов множества без фигурных скобок

06.01.2019, 19:54. Показов 32234. Ответов 11

Author24 — интернет-сервис помощи студентам
Привет всем!
При решении одной задачи возник вопрос - а как, собственно, вывести элементы множества без фигурных скобок? Можно звездочку добавить, а без нее как?
Например в этом коде:

Python
1
2
3
A = [1,2,3,4,5]
B = [3,4,1,5]
print(set(A) - set(B))
необходимо вывести 2(integer).
Спасибо за помощь!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2019, 19:54
Ответы с готовыми решениями:

Сгенерировать GUID код без фигурных скобок
Мне надо в XML запихнуть сгенерированный GUID типа GUID="8867f906-9a9b-4f33-88dc-77d54c2cf9a3" ...

Определить, входит ли лента GUID с фигурными или без фигурных скобок
Здравствуйте, столкнулся с проблемой. Такое вот задание: написать регулярное выражение, которое...

Теряются значения элементов вне фигурных скобок
Всем доброго времени суток! Написал программу для замены минимального и максимального элементов...

Экранирование фигурных скобок
Нужно с помощью регулярных выражений определить, соответствует ли введенная строка шаблону GUID....

11
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
06.01.2019, 20:31 2
Цитата Сообщение от 7esoterik7 Посмотреть сообщение
вывести элементы множества без фигурных скобок?
Если вам нужны элементы контейнера, а не сам контейнер - распакуйте контейнер звездочкой.
А сам контейнер - никак (если не придумывать всякой ерунды с заменой). Все контейнеры в python выводятся в виде строковой репрезентации пригодной для eval. Иной вариант просто никому не нужен.

P.S. Естественно, что помимо звездочки это можно сделать и бесполезным циклом:
Python
1
for i in set([1,2,3]):print(i,end=' ')
1
Просто Лис
Эксперт Python
5965 / 3728 / 1097
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
07.01.2019, 09:06 3
Лучший ответ Сообщение было отмечено 7esoterik7 как решение

Решение

Цитата Сообщение от Garry Galler Посмотреть сообщение
print(i,end=' ')
Этот вариант оставит лишний пробел в конце.

Можно аккуратно сджойнить:
Python
1
2
3
4
A = [1,2,3,4,5]
B = [3,4,1,5]
r = set(A) - set(B)
print(' '.join(map(str, r)))
Добавлено через 1 минуту
Хотя распаковка контейнера звёздочкой проще.
Python
1
print(*r)
1
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
07.01.2019, 10:48  [ТС] 4
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Хотя распаковка контейнера звёздочкой проще.
Я не знаю почему, но на Codewars звездочка не работает
0
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
07.01.2019, 13:21 5
Цитата Сообщение от 7esoterik7 Посмотреть сообщение
но на Codewars звездочка не работает
Работает.

Python
1
2
3
4
def test():
    return range(5)
    
print(*test())
Код
0 1 2 3 4
0
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
07.01.2019, 14:16  [ТС] 6
Цитата Сообщение от Garry Galler Посмотреть сообщение
Сообщение от 7esoterik7
но на Codewars звездочка не работает
Работает.
PythonВыделить код
1
2
3
4
def test():
* * return range(5)
print(*test())
Код
0 1 2 3 4
Garry Galler, вы не поняли. На вот этом сайте https://www.codewars.com при проверке задачи звездочка не работает, а при этом идентичный код в PyCharm проходит.
0
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
07.01.2019, 14:41 7
Цитата Сообщение от 7esoterik7 Посмотреть сообщение
вы не поняли.
Понял. Я это код там и запускал.
0
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
07.01.2019, 15:01  [ТС] 8
Цитата Сообщение от Garry Galler Посмотреть сообщение
Понял. Я это код там и запускал.
Garry Galler, разобрался. Я так понял указание звездочки в теле функции после return недопустимо.
А вот в функции print() возможно. Почему так?
0
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
07.01.2019, 15:15 9
Цитата Сообщение от 7esoterik7 Посмотреть сообщение
Почему так?
return может вернуть только один элемент. А звездочка, распаковав контейнер, превратит его в несколько элементов.
Таким образом налицо нарушение синтаксиса.
1
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
07.01.2019, 15:20  [ТС] 10
Теперь прояснилось! Спасибо вам!
0
Просто Лис
Эксперт Python
5965 / 3728 / 1097
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
08.01.2019, 13:21 11
Цитата Сообщение от Garry Galler Посмотреть сообщение
return может вернуть только один элемент.
Эм?..

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def f():
    ls = [1, 2, 3]
    return tuple(ls)
 
print(f())
 
 
def f2():
    return 1, 2, 3
 
print(f2())
 
r1, r2, r3 = f2()
print(r1, r2, r3)
0
Эксперт Python
5435 / 3858 / 1215
Регистрация: 28.10.2013
Сообщений: 9,553
Записей в блоге: 1
08.01.2019, 13:40 12
Рыжий Лис,
Кортеж это и есть один элемент\объект. То, что он составной - не важно. Для return он единственный и неповторимый.
Так что возврат нескольких элементов\значений из функции через кортеж - просто фокус, который придумали в Python.

P.S. Так и знал, что кто-то поспешно не согласится с очевидным.
0
08.01.2019, 13:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2019, 13:40
Помогаю со студенческими работами здесь

Экранирование фигурных скобок
Столкнулся с такой проблемой: Пытаюсь разобрать текст из файла, а там есть фигурные скобки....

Вывод элементов списка без скобок и запятых в игре "Виселица"
Очень прошу!! Скажите как сделать чтобы угаданные буквы(маленький скрин 1) выводились без...

Отсутствие фигурных скобок в блоке if
Разве такое возможно? В 5 строчке if внутри скобок прописано условие а знаков обозначающих then {...

Допустимость порядка фигурных скобок
Здравствуйте, помогите пожалуйста написать код на языке C для этой задачи. :) Условие: ...

Допустим ли порядок фигурных скобок
Cоздайте функцию, которая принимает строку фигурных скобок и возвращает допустим ли порядок...

Баланс фигурных скобок в файле
Вообщем нужно прочитать текст (любая программа, в файле name.txt) из файла и проверить баланс...

Как разобраться с принадлежностью фигурных скобок?
Учусь писать программы на Microsoft Visual Studio 2008 Express edition. Иногда бывает трудно...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru