LINUX.ORG.RU

Значения присваиваются переменным в разном порядке

 , ,


0

1

Всем привет.


def thing(state):
    a,b,time=state
    first, torch = b
    print(first,torch)
    s = set()
    for item in a:
        s = s | {item}
    return {(frozenset(s | {first, torch}), frozenset([]), time + first): (first, first, 'reverse')}

print(thing((frozenset([1]), frozenset([2, 'lamp']), 5)))

результат 1

2 lamp
{(frozenset({1, 2, 'lamp'}), frozenset(), 7): (2, 2, 'reverse')}

результат 2

lamp 2
Traceback (most recent call last):
  File "/PycharmProjects/First_proj./Test.py", line 59, in <module>
    print(thing((frozenset([1]), frozenset([2, 'lamp']), 5)))
  File "/PycharmProjects/First_proj./Test.py", line 57, in thing
    return {(frozenset(s | {first, torch}), frozenset([]), time + first): (first, first, 'reverse')}
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Process finished with exit code 1

Как это исправляется?



Последнее исправление: hibiscusM (всего исправлений: 3)
Ответ на: комментарий от provaton

а мне нужны sets and frozensets. получилось через set comprehension. Строка выкидывается из множества, и только int-ы выбираются.

hibiscusM
() автор топика

зарепортил в фскн

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.