2012-10-10 6 views
-4

다음과 같은 목록이 있습니다 : list = [].목록의 파이썬 [] 표기법

그리고 나서 x = 'A'으로 가정하면 list = list + [x]은 무엇을 의미합니까? 그것은 오직 문자를위한 것입니까? 그렇다면 정수에 어떻게 적용 할 수 있습니까?

+6

나는 *이 다른 SO 질문에 * 튜토리얼 *에 포함되어 .. –

+0

* 확신도없고, 그 이유는 쉽게 반증한다 :'목록 = []; list = list + [42]' –

+0

다른 곳에서 설명합니다. 적어도 개별 구성 요소는 있습니다. 다크 스키 (Darksky)님께 서 특정 조합에 문제가 있으시면 알려 주신 내용을 설명해주십시오. – delnan

답변

-3

lis=lis+[x] 수단 'a'는이 방법으로 생성하고 []에 다음 LHS

lis에 새 목록 ['a']를 저장하지만 추가 매번 새로운 객체 :

In [38]: x='a' 

In [39]: lis=[] 

In [40]: id(lis) 
Out[40]: 154680492 

In [41]: lis=lis+[x] 

In [42]: lis 
Out[42]: ['a'] 

In [43]: id(lis) 
Out[43]: 154749100 
(210)

더 나은 사용 lis+=[x] 또는 lis.extend(x)

+0

"lis"목록을 가리키고 있거나 새 목록을 가리 키기 위해'lis'를 다시 바인딩하지 않으므로 "[S]는 새 목록을 찢어 버렸습니다"라는 말이 잘못되었습니다. 'lis'에서 보유하고있는 기존 목록에 새 목록을 추가하고 있습니다. –

4

먼저 list 대신 다른 이름을 사용하십시오.

그런 다음 시도해보십시오. 파이썬 껍데기가 있으십니까?

>>> l = [] 
>>> l = l + "a" 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: can only concatenate list (not "str") to list 
>>> l = l + ["a"] 
>>> l 
['a'] 
>>> l = l + [1] 
>>> l 
['a', 1] 
>>> l = l + 2 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: can only concatenate list (not "int") to list 
>>> 
1

그것은 어떤 데이터 목록의 CONCATENATE의 :

>>> [1, "a", True] + ["hello", 2.3] 
[1, "a", True, "hello", 2.3]