2016-12-07 5 views
-5

나는 다음과 같은 목적이 있습니다Python에서 오브젝트를 채우는 방법은 무엇입니까?

FILES = (
     ('hello3.txt', True), 

    ) 

방법 FILES에 새로운 요소를 추가 할 수 있습니까?

내가 시도 : FILES.append("name.txt")

나는이 예제를 사용하여 디렉토리에서 모든 파일을 튜플을 추가해야합니다 : 당신은 여기에 튜플을 사용하는 https://groups.google.com/forum/#!topic/google-appengine/QOMzUhZ2b3Q

+10

튜플는 불변, FILES'에게'목록 –

+1

사용'A = [ '1', TRUE]'다음'a.append ('뭔가')을 만드는 것을 고려' – sashoalm

+0

나는이 예제를 사용하고 필요 디렉토리의 모든 파일을 튜플에 추가하려면 https://groups.google.com/forum/#!topic/google-appengine/QOMzUhZ2b3Q – Griboedov

답변

1

Moses Koledoye가 말한 것과 마찬가지로, 튜플 객체는 불변입니다.

추가하거나, FILES에 시도 제거하려면

: 파일 또는 T/F의 값의 이름을 변경하려면

FILES = [('hello3.txt', True)] 
FILES.append(('new.txt', False)) 

list 대신 tuple 사용합니다.

FILES = [['hello3.txt', True]] 
FILES.append(['new.txt', False]) 
FILES[0][1] = False 

하지만이 코드는 너무 추합니다. 나는 목록을 사용하는 대신 클래스를 만드는 것을 선호한다.

class File: 
    __slots__ = 'name', 'flag' 
    def __init__(self, name, flag): 
     self.name = name 
     self.flag = flag 
FILES = [File('hello3.txt', True)] 
FILES.append(File('new.txt', False)) 
FILES[0].flag = False 

파일에 2 개의 속성 (이름 및 플래그) 만있는 경우에도 간단한 방법이 있습니다.

FILES = {'hello3.txt': True} 
FILES['new.txt'] = False 
+0

루프 업데이트 질문 – Griboedov

+0

@Griboedov 특정 디렉토리의 모든 파일을 가져 오시겠습니까? – EmOwen

2

. 변경할 수 없으며 만든 후에 뭔가를 추가 할 수 없습니다.

가장 좋은 방법은 여기에 다른 데이터 구조를 사용하는 것입니다. 목록 : 목록! 당신이 "사전"에 대해 읽어보다 어렵고 성능이 좋은 구조가 필요한 경우 https://docs.python.org/3/tutorial/datastructures.html

:

FILES = ['hello3.txt', True] 

지금의 append 기능은 여기에 서로 다른 데이터 구조에 대한 그것의 일

FILES.append("name.txt") 

더 많은 일을 할 수 있습니다.

+0

맞죠? 'FILES = [] FILES.append ((filename, True))' – Griboedov

+0

루프 업데이트 질문 – Griboedov

관련 문제