2017-04-05 4 views
-1

다른 목록의 값으로 목록을 만들 필요가 있습니다. 이러한 목록에는 문자열, 정수 목록, 튜플 등 특정 유형의 값만 포함되어야합니다. 원래 목록입니다.다른 목록의 값으로 목록을 만들 필요가 있습니다. 이 목록에는 특정 유형의 값만 포함되어야합니다.

x = [55.5,'hello','abc',10,'5','x5',0.25,['A',2,1.5],5,2,5.3,'AEIOU',('dog','cat','chicken'),[1,2,3],1001,['a',1],'world','01/10/2015',20080633,'2.5',0.123,(1,2,'A','B'),5,'chicken',2016,3.1416] 

나는 어떤 성공하지만,이를 사용하는 것을 시도했다 :

for i in range(len(x)): 
    if x[i].is_integer() == True: 
     intlist.append(x[i]) 
    elif x[i].isalpha() == True: 
     strlist.append(x[i]) 

답변

0

사람들은 기능의 방법이 아니다. .is_integer() 메서드는 어떤 개체에도 표시되지 않은 메서드이며 .isalpha()은 문자열에만 있습니다. 당신은 다른 기능과 종류를 확인해야 isinstance() 말 : 내가 대신 인덱스를 사용하는 for item in x:을 사용

for item in x: 
    if isinstance(item, int): 
     intlist.append(item) 
    elif isinstance(item, str): 
     strlist.append(item) 

알 수 있습니다.

+0

for 'in for x :'를 사용하는 동안 빈 목록을 반환했지만 ** isinstance **로 올바른 방향으로 나를 가리켰습니다. 고마워요. –

+0

아, 실수 했어. isinstance (x, ...)가 아니라 isinstance (item, ...)이어야합니다. – zondo