Python: Добавление неупакованных значений (строк) кортежа - PullRequest
0 голосов
/ 27 мая 2020

Есть ли однострочная команда для добавления двух строк, содержащихся в кортеже, к двум существующим строкам в программе?

По сути, это то, что я хочу сделать, но более коротким способом,

t=("hi","hello")
x="test"
y="python"
x+=t[0]
y+=t[1]

Я подумал, может быть, есть такой код, который действительно работает,

x+,y+=t

Использование python вместо дополнения к распакованным кортежам - мне очень понравился Решение для комплексных чисел, указанное в этом аналогичном вопросе, но я не могу его использовать, поскольку мои значения являются строками. Или есть способ манипулировать своими данными (не вдаваясь в слишком много строк кода), чтобы можно было использовать этот метод?

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Используя этот ответ на связанный с вами вопрос, вы можете сделать это:

from operator import add

t = ("hi", "hello")
x = "test"
y = "python"

x, y = map(add, (x, y), t)

Честно говоря, его довольно сложно читать, и я бы не советовал использовать его. Что касается синтаксиса по умолчанию Python, я сомневаюсь, что есть что-то, что вы могли бы использовать.

1 голос
/ 27 мая 2020

Одна строка кода, выполняющая то, что вы ожидаете, приведена ниже,

Код:

x, y = ["".join(i) for i in zip([x,y], t)]

Здесь zip () делает итератор, который объединяет элементы каждой из переданных ему последовательностей. В этом случае это будет [(x, t[0]), (y, t[1])]. .join () объединяет элементы переданного ему списка с помощью разделителя (в данном случае "").

...