другой возможный способ дублировать строку из одной переменной в python - PullRequest
2 голосов
/ 06 февраля 2020

Я пытаюсь создать функцию для дублирования string из одного variable и вернуть его с двумя аргументами. Я пытаюсь сделать следующее: если я наберу pie, он вернет ('pie','pie'), вот что я уже делаю:

def duplicateVariabel(kata):
  kata_dua = kata
  return kata,kata_dua
print(duplicateVariabel("aku"))

, поэтому в основном я пытаюсь найти другой способ дублировать aku без использования kata_dua = kata, но по-прежнему возвращать 2 variables

Ответы [ 3 ]

4 голосов
/ 06 февраля 2020
>>> kata = "kata"
>>> (kata, kata)
('kata', 'kata')

Нет необходимости создавать новую переменную.

3 голосов
/ 06 февраля 2020

Попробуйте это:

def duplicateVariabel(kata):
   return kata,kata
print(duplicateVariabel("aku"))

duplicateVariabel возвращает кортеж, содержащий строковые значения.

, поэтому в основном я пытаюсь найти другой способ дублировать aku без использования kata_dua = kata, но по-прежнему возвращает 2 переменные

Примечание: строки в Python являются неизменными, а переменные содержат ссылки (они аналогичны указателям) на значения / объект. Таким образом, вы в основном не дублируете строки. См. this .

См. this для различия между мелкой и глубокой копией.

kata_dua = kata

Вышеприведенное утверждение не делает мелкой или глубокая копия. Копируется только ссылка, хранящаяся в переменной kata, в переменную kata_dua. После приведенного выше утверждения они оба указывают на один и тот же объект (например, "aku")

Если вы мне не верите, попробуйте следующее:

abcd = "abhi"
efgh = abcd
print("ABCD is ", id(abcd))
print("EFGH is ", id(efgh))

Они оба напечатают то же значение.

2 голосов
/ 06 февраля 2020

Вы можете просто написать return kata, kata

, просто имейте в виду, что когда вы возвращаетесь к разделенной запятыми переменной, она возвращает кортеж. Таким образом, доступ к контенту соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...