튜플에 값을 추가하는 방법?
나는 같은 튜플 목록이있는 스크립트에서 작업하고 ('1','2','3','4')
있습니다. 예 :
list = [('1','2','3','4'),
('2','3','4','5'),
('3','4','5','6'),
('4','5','6','7')]
지금은 추가 할 필요가 '1234'
, '2345'
, '3456'
및 '4567'
각 튜플의 끝에서 각각. 예 :
list = [('1','2','3','4','1234'),
('2','3','4','5','2345'),
('3','4','5','6','3456'),
('4','5','6','7','4567')]
어떤 식 으로든 가능합니까?
튜플은 불변이며 변경되지 않아야합니다. 이것이 바로 목록 유형입니다. 각 튜플을로 대체 originalTuple + (newElement,)
하여 새 튜플을 만들 수 있습니다. 예를 들면 :
t = (1,2,3)
t = t + (1,)
print t
(1,2,3,1)
그러나 항목을 삽입하는 것이 더 빠르기 때문에 처음부터 목록을 사용하는 것이 좋습니다.
또 다른 힌트 : list
프로그램에 내장 된 이름 을 덮어 쓰지 말고 변수 l
나 다른 이름을 호출하십시오 . 기본 제공 이름을 덮어 쓰면 현재 범위에서 더 이상 사용할 수 없습니다.
구문에 따르면 이것이 Python이라고 생각합니다. 튜플의 요점은 불변이기 때문에 각 요소를 새 튜플으로 교체해야한다는 것입니다.
list = [l + (''.join(l),) for l in list]
# output:
[('1', '2', '3', '4', '1234'),
('2', '3', '4', '5', '2345'),
('3', '4', '5', '6', '3456'),
('4', '5', '6', '7', '4567')]
파이썬에서는 할 수 없습니다. 튜플은 변경할 수 없습니다.
포함 목록에서 튜플 ('1', '2', '3', '4')
을 다른 ('1', '2', '3', '4', '1234')
튜플으로 바꿀 수 있습니다.
다른 사람들이 대답했듯이 파이썬의 튜플은 불변이며 하나를 '수정'하는 유일한 방법은 추가 된 요소가 포함 된 새 튜플을 만드는 것입니다.
그러나 가장 좋은 해결책은 목록입니다. 튜플이 필요한 함수 나 메서드를 호출해야 할 때 tuple (list)를 사용하여 튜플을 만듭니다.
다른 답변에서 언급했듯이 튜플은 일단 생성되면 변경할 수 없으며 목록이 더 나은 목적을 제공 할 수 있습니다.
즉, 추가 항목으로 새 튜플을 만드는 또 다른 옵션은 splat 연산자를 사용하는 것입니다.
new_tuple = (*old_tuple, 'new', 'items')
나는이 구문이 새로운 튜플처럼 보이기 때문에 당신이하려는 일을 명확하게 전달 하기 때문에 좋아합니다.
splat을 사용하는 잠재적 솔루션은 다음과 같습니다.
list = [(*i, ''.join(i)) for i in list]
tuple
및 관련 세부 정보를 list
살펴 보았으며 이해 한 내용은 다음과 같습니다.
- 튜플은
Heterogeneous
컬렉션 데이터 유형입니다. - 튜플의 길이 가 고정되어 있습니다 (튜플 유형 당)
- 튜플은 항상 유한합니다.
따라서 새 항목을 튜플에 추가하려면으로 캐스팅하고 작업을 list
수행 append()
한 다음 다시 튜플로 캐스팅해야합니다.
하지만이 질문에 대해 생각 개인적으로 무엇을, 경우 튜플이 있어야하는 유한 , 고정 길이 항목과 우리가 우리의 응용 프로그램 로직에 그 데이터 형식을 사용하는 경우 다음이해야 하지 새 항목을 추가하거나 항목의 값을 업데이트하는 시나리오가 될 그것. 따라서 튜플 목록 대신 목록 자체 의 목록 이어야합니다. 내가 맞습니까?
list_of_tuples = [('1', '2', '3', '4'),
('2', '3', '4', '5'),
('3', '4', '5', '6'),
('4', '5', '6', '7')]
def mod_tuples(list_of_tuples):
for i in range(0, len(list_of_tuples)):
addition = ''
for x in list_of_tuples[i]:
addition = addition + x
list_of_tuples[i] = list_of_tuples[i] + (addition,)
return list_of_tuples
# check:
print mod_tuples(list_of_tuples)
OUTPUTS = []
for number in range(len(list_of_tuples))):
tup_ = list_of_tuples[number]
list_ = list(tup_)
item_ = list_[0] + list_[1] + list_[2] + list_[3]
list_.append(item_)
OUTPUTS.append(tuple(list_))
출력은 당신이 원하는 것입니다
참고 URL : https://stackoverflow.com/questions/4913397/how-to-add-value-to-a-tuple
'Nice programing' 카테고리의 다른 글
ReaderWriterLockSlim이 단순 잠금보다 나은 때는 언제입니까? (0) | 2020.10.23 |
---|---|
비밀번호 변경 후 자동으로 로그 아웃하도록 고안 (0) | 2020.10.23 |
엔티티 프레임 워크가 조인을 남겼습니다. (0) | 2020.10.23 |
R에서 밀도 플롯을 오버레이하는 방법은 무엇입니까? (0) | 2020.10.23 |
자바 하우투 ArrayList 푸시, 팝, 시프트 및 시프트 해제 (0) | 2020.10.23 |