파이썬을 배우고 데이터베이스 연결을 만들고 있습니다. DB에 추가하려고 할 때 정보에서 튜플을 만든 다음 DB에 추가하려고합니다.
내가하고있는 일 : 사용자로부터 정보를 가져 와서 변수에 저장합니다. 이 변수들을 터플에 추가 할 수 있습니까? 구문을 알려주세요.
또한이 작업을 수행하는 효율적인 방법이 있다면 공유하십시오 …
편집이 질문을 조금 편집 하겠습니다 … DB에 정보를 입력하려면 튜플 만 있으면됩니다. 정보가 DB에 추가되면 튜플을 삭제해야합니까? 더 이상 튜플이 필요하지 않습니다.
답변
튜플은 불변입니다. 생성 후 변수가 포함 된 변수는 변경할 수 없습니다. 그러나, 그것들을 연결하거나 슬라이스하여 새로운 튜플을 형성 할 수 있습니다 :
a = (1, 2, 3)
b = a + (4, 5, 6) # (1, 2, 3, 4, 5, 6)
c = b[1:] # (2, 3, 4, 5, 6)
그리고 물론, 기존의 가치로부터 그것들을 구축하십시오 :
name = "Joe"
age = 40
location = "New York"
joe = (name, age, location)
답변
다음과 같은 빈 튜플로 시작할 수 있습니다 t = ()
. 로 추가 할 수 +
있지만 다른 튜플을 추가해야합니다. 단일 요소를 추가하려면 단일 요소로 만드십시오 t = t + (element,)
. 후행 쉼표가 있거나없는 여러 요소의 튜플을 추가 할 수 있습니다.
>>> t = ()
>>> t = t + (1,)
>>> t
(1,)
>>> t = t + (2,)
>>> t
(1, 2)
>>> t = t + (3, 4, 5)
>>> t
(1, 2, 3, 4, 5)
>>> t = t + (6, 7, 8,)
>>> t
(1, 2, 3, 4, 5, 6, 7, 8)
답변
아직 언급되지 않은 또 다른 전술은 목록에 추가하고 목록을 튜플로 변환하는 것입니다.
mylist = []
for x in range(5):
mylist.append(x)
mytuple = tuple(mylist)
print mytuple
보고
(0, 1, 2, 3, 4)
때로는 튜플을 함수 인수로 전달해야 할 때 이것을 사용합니다.이 함수는 종종 numpy 함수에 필요합니다.
답변
Python 3에서는 *
원래 튜플에서 새 요소와 함께 새 튜플 요소를 만드는 데 사용할 수 있습니다 .
>>> tuple1 = ("foo", "bar")
>>> tuple2 = (*tuple1, "baz")
>>> tuple2
('foo', 'bar', 'baz')
답변
“정보가 DB에 추가되면 튜플을 삭제해야합니까? 더 이상 튜플이 필요하지 않습니다.”
아니.
일반적으로 아무것도 삭제할 이유가 없습니다. 삭제에 대한 특별한 경우가 있지만 매우 드 rare니다.
좁은 범위 (즉, 클래스의 함수 정의 또는 메서드 함수)를 정의하기 만하면 개체가 범위의 끝에서 가비지 수집됩니다.
아무것도 삭제하는 것에 대해 걱정하지 마십시오.
[노트. 나는 객체를 삭제하는 것 외에도 항상 “재설정”방법을 사용하여 지우는 사람과 함께 일했습니다. 그가 그들을 저장하고 재사용하려고했던 것처럼. 또한 어리석은 자존심. 더 이상 사용하지 않는 개체는 무시하십시오. 충분히 작은 코드 블록으로 함수를 정의하면 더 이상 생각할 것이 없습니다.]
답변
다음과 같이 쉽습니다.
info_1 = "one piece of info"
info_2 = "another piece"
vars = (info_1, info_2)
# 'vars' is now a tuple with the values ("info_1", "info_2")
그러나 Python의 튜플은 변경할 수 없으므로 튜플이 만들어지면 변수를 추가 할 수 없습니다.
답변
다른 답변에서 언급했듯이 기존 튜플을 변경할 수는 없지만 항상 새 튜플을 만들 수 있습니다 (기존 튜플 및 / 또는 다른 소스에서 일부 또는 모든 항목을 가져올 수 있음).
예를 들어, 관심있는 모든 항목이 스칼라 변수에 있고 해당 변수의 이름을 알고있는 경우 :
def maketuple(variables, names):
return tuple(variables[n] for n in names)
예를 들어이 예에서와 같이 사용됩니다.
def example():
x = 23
y = 45
z = 67
return maketuple(vars(), 'x y z'.split())
물론이 경우는보다 단순하게 표현 될 수 있지만 (x, y, z)
(또는 앞서 언급 한 이름까지도 (23, 45, 67)
) maketuple
접근 방식은 좀 더 복잡한 경우에 유용 할 수 있습니다 (예 : 사용할 이름도 동적으로 결정되어 목록에 추가되는 경우). 계산).
