터플이 이 아니기 때문에이 질문은 약간 잘못된 것입니다.입니다. 내가 원하는 것은 :파이썬 : 튜플의 (마지막) 요소를 변경하는 방법?
정확히 a
두 배의 마지막 요소, 말이며, 마지막 인수를 제외하고 a
처럼 튜플 b
를 얻을 수 튜플 a = (1, 2, 3, 4)
을 가졌어요.
=> B == (1, 2, 3, 8)
터플이 이 아니기 때문에이 질문은 약간 잘못된 것입니다.입니다. 내가 원하는 것은 :파이썬 : 튜플의 (마지막) 요소를 변경하는 방법?
정확히 a
두 배의 마지막 요소, 말이며, 마지막 인수를 제외하고 a
처럼 튜플 b
를 얻을 수 튜플 a = (1, 2, 3, 4)
을 가졌어요.
=> B == (1, 2, 3, 8)
b = a[:-1] + (a[-1]*2,)
제가 여기하고있어 두 가지 튜플 연결하고, 마지막 요소이지만 제 함유 모든, 새로운 튜플 최종 요소의 돌연변이가 들어 있습니다. 결과는 원하는 것을 포함하는 새로운 튜플입니다.
터플을 반환하는 +
의 경우 두 피연산자 모두 튜플이어야합니다. 내가 좋아하는 뭔가를 할 것
'(a [-1] * 2,)'는 어떨까요? 위의 예는 TypeError를 던집니다. (하나의 항목 튜플에 후행 쉼표가 필요합니다.) – Skilldrick
@Skilldrick 감사, 편집 – Ivo
여기에 그 일을하는 한 가지 방법이다 :
>>> a = (1, 2, 3, 4)
>>> b = a[:-1] + (a[-1]*2,)
>>> a
(1, 2, 3, 4)
>>> b
(1, 2, 3, 8)
그래서이 두 번째 줄에 일이? a [: - 1]은 마지막 원소를 제외한 모든 원소를 의미합니다. a [-1]은 마지막 요소이고, 우리는 그것을 두 개 곱합니다. (a [-1] * 2,)는 결과를 튜플로 변환하고, 슬라이스 된 튜플은 + 연산자를 사용하여 결합됩니다. 결과는 b에 기록됩니다.
귀하의 사례에 맞게 조정할 수 있습니다.
당신이 그것을 도울 수 있다면, 당신은 요소의 적절한 조작을하려고한다면 목록을 사용하는 것을 고려해보십시오. – user37078
내 시나리오에서 튜플을 사용하는 것이 더 합리적이라고 생각합니다. - 'major.minor.branch.build -> (major, minor, branch, build)' 형태로 프로그램 버전을 표현해야합니다. 주어진 버전에서 '이전 빌드'의 버전을 얻으십시오. –
버전 번호에는'distutils.version.StrictVersion' 클래스를 사용할 수 있습니다. – SiggyF